Avatar billede dank Nybegynder
16. juli 2003 - 14:26 Der er 7 kommentarer og
2 løsninger

skifte mellem databaser i en løkke

Hvis man f.eks. har

mysql_select_db("db1");
while($row = mysql_fetch_array($result)) {
..
..
mysql_select_db("db2");
..
..
}

Vil det virke? Kan man sådan skifte til en anden database og lave et statement, og vil løkken så fortsætte uændret?

Jeg har p.t. ikke mulighed for et testsetup, så måske var der nogen af jer der havde prøvet det?
Avatar billede repox Seniormester
16. juli 2003 - 14:30 #1
Du behøver principielt ikke at skifte database, men jo, så'n der kan du godt gøre, men ellers kan man også definere i sin forespørgsel hvilken database du vil hente fra....
Avatar billede dank Nybegynder
16. juli 2003 - 14:34 #2
huh? det forstår jeg ikke helt.. jeg har f.eks.:

$insertSQL = "DELETE FROM `user` WHERE `User` = '$navn' AND `Host` = 'localhost';";
mysql_query($insertSQL) or die();

Ovenstående skal køres mod "mysql" databasen (altså selve den database der indeholder brugerdata o.s.v.)

Hvordan skal jeg køre det, uden at skifte database?
Avatar billede repox Seniormester
16. juli 2003 - 14:37 #3
istedet for at definere hvilken database du vil bruge, så skriv:

MYSQL_QUERY("DELETE FROM db1.user WHERE User='$navn' AND Host='localhost'") or Die(mysql_error());
Avatar billede repox Seniormester
16. juli 2003 - 14:52 #4
Må nok hellere læse ordentligt efter næste gang..... Erstat db1 med mysql:

MYSQL_QUERY("DELETE FROM mysql.user WHERE User='$navn' AND Host='localhost'") or Die(mysql_error());
Avatar billede dank Nybegynder
16. juli 2003 - 15:21 #5
Jeg forstår det simpelthen ikke.. jeg har forsøgt med både mit eget statement og dit forslag...

Det virker *kun* når jeg selecter mysql databasen først.

Men jeg prøver lige lidt mere i aften.

Og jeg har mysql root adgang o.s.v.. :o?
Avatar billede Slettet bruger
17. juli 2003 - 00:27 #6
En anden løsning er at åbne 2 forbindelser, med hver sin database valgt:

$connect1 = mysql_connect(...);
$connect2 = mysql_connect(...);

$db1 = mysql_select_db("db1", $connect1);
$db2 = mysql_select_db("db2", $connect2);

$result1 = mysql_query("...", $connect1);
while($row = mysql_fetch_array($result1)) {
    ...
    $result2 = mysql_query("...", $connect2);
    ... 
}
Avatar billede dank Nybegynder
17. juli 2003 - 16:53 #7
opretter i svar.. så deler jeg point mellem jer.
Avatar billede Slettet bruger
17. juli 2003 - 16:57 #8
Ok.
Avatar billede repox Seniormester
18. juli 2003 - 11:15 #9
Jeg testede lige dette for at se om jeg havde lavet en fejl, men jeg synes dette virker upåklageligt....

Men ellers er mercurs svar jo lige så godt...

<?php
mysql_connect("localhost", "root", "xxxxxxx");

$query1 = mysql_query("SELECT * FROM mysql.user where User='root'");
$query2 = mysql_query("SELECT * from storm.users where username='root'");

$result1 = mysql_result($query1, 0, "host");
$result2 = mysql_result($query2, 0, "email");

echo $result1.'<br>';
echo $result2;



?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester