2 database's
Je kan nu gewoon boven aan je pagina de 2 databases connecten, en die var steeds gebruiken bij je query, is toch niet lastig of langzaam :s
of mijn voorbeeld aanpassen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
session_start();
ob_start();
error_reporting(E_ALL);
ini_set("display_errors", 1);
// Connectie met database site1
$connectie_1 = mysql_connect("localhost", "root", "") or die ( mysql_error());
$database_1 = mysql_select_db("site1", $connectie_1) or die (mysql_error());
// Connectie met database site2
$connectie_2 = mysql_connect("localhost", "root", "") or die ( mysql_error());
$database_2 = mysql_select_db("site2", $connectie_2) or die (mysql_error());
// Kijken of ik alle leden krijg
$q1 = mysql_query("SELECT nick FROM leden", $database_1 ) or die(mysql_error()); // Query op database site1
while($a1 = mysql_fetch_assoc($q1))
{
echo $a1['nick']."<br />";
}
// Output moet zijn: Moozzie
// Kijken of ik alle admins krijg
$q2 = mysql_query("SELECT login FROM admin", $database_2 ) or die(mysql_error());// Query op database site2
while($a2 = mysql_fetch_assoc($q1))
{
echo $a2['login']."<br />";
}
// Output moet zijn: admin
/* Totale output moet zijn:
Moozzie
admin
*/
?>
session_start();
ob_start();
error_reporting(E_ALL);
ini_set("display_errors", 1);
// Connectie met database site1
$connectie_1 = mysql_connect("localhost", "root", "") or die ( mysql_error());
$database_1 = mysql_select_db("site1", $connectie_1) or die (mysql_error());
// Connectie met database site2
$connectie_2 = mysql_connect("localhost", "root", "") or die ( mysql_error());
$database_2 = mysql_select_db("site2", $connectie_2) or die (mysql_error());
// Kijken of ik alle leden krijg
$q1 = mysql_query("SELECT nick FROM leden", $database_1 ) or die(mysql_error()); // Query op database site1
while($a1 = mysql_fetch_assoc($q1))
{
echo $a1['nick']."<br />";
}
// Output moet zijn: Moozzie
// Kijken of ik alle admins krijg
$q2 = mysql_query("SELECT login FROM admin", $database_2 ) or die(mysql_error());// Query op database site2
while($a2 = mysql_fetch_assoc($q1))
{
echo $a2['login']."<br />";
}
// Output moet zijn: admin
/* Totale output moet zijn:
Moozzie
admin
*/
?>
ik zette de mysql_select_db niet in een var
waarschijnlijk bedoelde Robert ook zoiets maar ik vatte het niet ^^
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
Maar het werkt nu dus?
ik dacht dat dit de oplossing was maar ik krijg deze fout:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\host\xampp\htdocs\test\mysqltest\index.php on line 16
kan je een voorbeeld geven op class style?
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
En de classes manier maakt helemaal geen verschil, aangezien je nog steeds dezelfde functies gebruikt.
Maar zo zou het volgens mij dus wel moeten werken:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$conn1 = mysql_connect('localhost','root','');
$conn2 = mysql_connect('otherhost','root','');
mysql_select_db('db',$conn1);
mysql_select_db('db2',$conn2);
mysql_query("QUERY",$conn1);
mysql_query("QUERY@",$conn2);
?>
$conn1 = mysql_connect('localhost','root','');
$conn2 = mysql_connect('otherhost','root','');
mysql_select_db('db',$conn1);
mysql_select_db('db2',$conn2);
mysql_query("QUERY",$conn1);
mysql_query("QUERY@",$conn2);
?>
Omdat hij van elke connectie maar 1 database heeft hoef je dus niet te switchen.
Ik heb wel iets anders gevonden, dat je het in je query zelf kan regelen.
Je geeft dus de database gewoon in de query mee, en de connectie identifier in de functie. Volgens mij kan het dan al helemaal niet fout gaan.
Nu ga je met jou code wel dezelfde fout weer in (database_select niet in een var!), je hoeft maar 1 keer te connecteren, het is dezelfde server enzo, dus daar hoef je niets mee, na die connectie moet je alleen 2 x de database selecteren, ik zou het zo doen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
// 1x verbinding maken, is beide keren hetzelfde, zonde van de extra code!
$connectie = mysql_connect('localhost','root','');
// database 1 connecteren, + query
mysql_select_db('db',$connectie);
mysql_query("QUERY");
// database 2 connecteren, + query
mysql_select_db('db2',$connectie);
mysql_query("QUERY@");
?>
// 1x verbinding maken, is beide keren hetzelfde, zonde van de extra code!
$connectie = mysql_connect('localhost','root','');
// database 1 connecteren, + query
mysql_select_db('db',$connectie);
mysql_query("QUERY");
// database 2 connecteren, + query
mysql_select_db('db2',$connectie);
mysql_query("QUERY@");
?>
@jordy
Dat was inderdaad precies wat ik bedoelde, doordat je het niet in een var zette, selecteer je eerst db1, meteen daarna db2, en die blijft geselecteerd tot het einde van je code, dus ook op delen waar het je bedoeling was met db1 te connecten
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Ik had dat niet door, dat het ook zelfde pas e.d. was.
Dan is mijn 2e manier denk ik sneller dan steeds mysql_select_db uitvoeren, maar of dat echt werkt weet ik niet.
Mocht beide methode niet werken, kan je ook eens naar mysql_db_query kijken, voorzover ik snap kan je dan mysql_select_db in een var stoppen, en die aan je query voeren, wat ik dus gisteren probeerde, maar wat blijkbaar niet kan.
Ik ga even jullie opties uitproberen :-)
Ik heb dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
session_start();
ob_start();
error_reporting(E_ALL);
ini_set("display_errors", 1);
// Connectie
$connectie = mysql_connect("localhost", "root", "") or die ( mysql_error());
$database_1 = mysql_select_db("site1", $connectie) or die (mysql_error());
$database_2 = mysql_select_db("site2", $connectie) or die (mysql_error());
// Kijken of ik alle leden krijg
$q1 = mysql_query("SELECT nick FROM site1.leden") or die(mysql_error()); // Query op database site1
while($a1 = mysql_fetch_assoc($q1))
{
echo $a1['nick']."<br />";
}// Output moet zijn: Moozzie
// Kijken of ik alle admins krijg
$q2 = mysql_query("SELECT login FROM site2.admin") or die(mysql_error()); // Query op database site2
while($a2 = mysql_fetch_assoc($q2))
{
echo $a2['login']."<br />";
}// Output moet zijn: admin
/* Totale output moet zijn:
Moozzie
admin
*/
?>
session_start();
ob_start();
error_reporting(E_ALL);
ini_set("display_errors", 1);
// Connectie
$connectie = mysql_connect("localhost", "root", "") or die ( mysql_error());
$database_1 = mysql_select_db("site1", $connectie) or die (mysql_error());
$database_2 = mysql_select_db("site2", $connectie) or die (mysql_error());
// Kijken of ik alle leden krijg
$q1 = mysql_query("SELECT nick FROM site1.leden") or die(mysql_error()); // Query op database site1
while($a1 = mysql_fetch_assoc($q1))
{
echo $a1['nick']."<br />";
}// Output moet zijn: Moozzie
// Kijken of ik alle admins krijg
$q2 = mysql_query("SELECT login FROM site2.admin") or die(mysql_error()); // Query op database site2
while($a2 = mysql_fetch_assoc($q2))
{
echo $a2['login']."<br />";
}// Output moet zijn: admin
/* Totale output moet zijn:
Moozzie
admin
*/
?>
Bedankt!