PHP でのクロス データベース クエリ: 障壁の突破
前のエピソードでは、MySQL でのクロス データベース クエリの構築が可能になりました。ただし、この知識を PHP に変換すると、mysql_select_db の制限により障害が発生しました。
オプションと制限
PHP で使用できるオプションは次のとおりです。
解決策
これらの制限を克服し、PHP でデータベース間クエリを実行するには、次の方法を活用できます。
$db = mysql_connect($hots, $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 ");
前提条件
このアプローチでは、両方のデータベースが同じホスト上に存在する必要があります。異なるホスト上にある場合、直接結合はできません。この場合、2 つの別々のクエリを実行できます:
$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);
この方法を利用すると、PHP でクロスデータベース クエリを簡単に実行でき、データベース インタラクションの機能が拡張されます。
以上がPHP でクロスデータベースクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。