04. maj 2006 - 20:05Der er
10 kommentarer og 1 løsning
Select random server
Hejsa,
Jeg har to database servers i et cluster (master / slave).
Følgende query skal vælge en random server: mysql_query('SELECT * WHERE 1=1', $mysql_rand);
Hvorimod denne skal vælge "master" serveren: mysql_query('SELECT * WHERE 1=1', $mysql_rand);
Har prøvet en masse, men kan ikke få det til at virke. Dette er hvad jeg har nu, men det virker ikke (får ingen fejl, men får intet output i mine queries):
Jeg har to db servers i cluster, en som master og den anden som slave.
Har brug for en kode der vælger en tilfældig db server, når der indsættes $mysql_rand i en query. Hvis der ikke indsættes noget, så er det fordi der er tale om en UPDATE, INSERT eller DELETE query, som skal connecte direkte til Master serveren.
Håber dette gør det mere klart.
Har prøvet dette, men er ikke sikker på om det virker:
db.php: <? // Select a random connection for standard SELECT queries. // The connection in the end is to the Master server, which is default.
Vi snakker måske forbi hinanden - har det på fornemmelsen ;)
Hvis du vil bruge en bestemt server (dvs en bestemt connection), er den bedste og tydeligste måde at gøre det på, at skrive det i de relevante mysql_query kald.
Altså ikke noget med: mysql_query('SELECT * WHERE 1=1');
Men derimod: mysql_query('SELECT * WHERE 1=1',$master);
Hvor du har lagt den connection ind med (klip):
if ($s["master"]) { $master=mysql_connect($s["ip"], $s["login"], $s["pass"]) or die(mysql_error()); mysql_select_db("database",$master); }
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.