Dans une discussion précédente, les requêtes entre bases de données dans MySQL ont été abordées. Cependant, lors de la tentative de mise en œuvre de ces connaissances en PHP, des défis sont survenus.
Le problème :
PHP propose deux approches en utilisant mysql_select_db :
La solution :
Pour effectuer des requêtes inter-bases de données en PHP sans modifications excessives, les étapes suivantes peuvent être suivies :
$db = mysql_connect($host, $user, $password); mysql_select_db('my_most_used_db', $db); $q = mysql_query(" SELECT * FROM table_on_default_db a, `another_db`.`table_on_another_db` b WHERE a.id = b.fk_id ");
Si les bases de données se trouvent sur des hôtes différents, les jointures directes ne sont pas possibles. Dans ce cas, deux requêtes peuvent être effectuées à la place :
$db1 = mysql_connect($host1, $user1, $password1); $db2 = mysql_connect($host2, $user2, $password2); $q1 = mysql_query(" SELECT id FROM table WHERE [..your criteria for db1 here..] ", $db1); $tmp = array(); while($val = mysql_fetch_array($q1)) $tmp[] = $val['id']; $q2 = mysql_query(" SELECT * FROM table2 WHERE fk_id in (".implode(', ', $tmp).") ", $db2);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!