Dalam perbincangan sebelumnya, pertanyaan silang pangkalan data dalam MySQL telah ditangani. Walau bagaimanapun, apabila cuba melaksanakan pengetahuan ini dalam PHP, cabaran timbul.
Masalahnya:
PHP menawarkan dua pendekatan menggunakan mysql_select_db:
Penyelesaian:
Untuk melakukan pertanyaan silang pangkalan data dalam PHP tanpa pengubahsuaian yang berlebihan, langkah berikut boleh diambil:
$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 ");
Jika pangkalan data berada pada hos yang berbeza , penyertaan langsung tidak boleh dilakukan. Dalam kes itu, dua pertanyaan boleh dilakukan sebaliknya:
$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);
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan Silang Pangkalan Data dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!