ホームページ > バックエンド開発 > PHPの問題 > PHP を使用して 2 つのデータベースにクエリを実行する方法

PHP を使用して 2 つのデータベースにクエリを実行する方法

PHPz
リリース: 2023-03-31 10:30:35
オリジナル
1274 人が閲覧しました

PHP は、主にサーバー側で使用されるオープンソースのスクリプト言語であり、Web 開発によく使用されます。学びやすく、使いやすく、開発効率が高いという利点があり、Webサイト開発で広く使用されています。実際の開発では、複数のデータベースに対してクエリを実行する場面が発生することがありますが、この記事では、PHP を使用して 2 つのデータベースに対してクエリを実行する方法を紹介します。

1. データベースへの接続

PHP では、通常、データベースへの接続に mysqli 拡張機能と PDO 拡張機能が使用されます。この記事では、デモのために mysqli 拡張機能を使用します。

まず、それぞれ db1 と db2 という名前の 2 つのデータベースを作成し、その中に学生テーブルと教師テーブルをそれぞれ作成します。両方のテーブルには、ID、名前、年齢などのフィールドがあります。次に、PHP コードで 2 つのデータベースを接続し、2 つのテーブルのデータをクエリします。コードは次のとおりです:

//db1 データベースを接続します
$mysqli1 = new mysqli(" localhost", "root", "password", "db1");

//db2 データベースに接続
$mysqli2 = new mysqli("localhost", "root", "password ", "db2 ");

//db1 データベースの Student テーブルをクエリします。
$sql1 = "SELECT * FROM Student";
$result1 = $mysqli1->query($ sql1);
while ($row1 = $result1->fetch_assoc()) {

//输出db1数据库中的student表的数据
echo "db1中student表的数据:" . $row1['id'] . " " . $row1['name'] . " " .$row1['age'].  "<br/>";
ログイン後にコピー

}

//db2 データベースの教師テーブルをクエリします
$sql2 = "SELECT * FROM 教師 ";
$result2 = $mysqli2->query($sql2);
while ($row2 = $result2->fetch_assoc()) {

//输出db2数据库中的teacher表的数据
echo "db2中teacher表的数据:" . $row2['id'] . " " . $row2['name'] . " " .$row2['age'].  "<br/>";
ログイン後にコピー

}
?> ;

上記のコードでは、まず mysqli を使用して 2 つのデータベース db1 と db2 への接続を試み、次にそれぞれ 1 つのテーブルのデータをクエリしてページに出力します。 while ループはデータを 1 行ずつ出力するために使用されます。

2. 同じ接続を使用して 2 つのデータベースをクエリします

1 つのデータベースに接続した後、接続オブジェクトを使用して複数のデータベースをクエリできます。テーブル名の前にデータベースの名前を追加するだけです。他のデータベースの場合も可能です。サンプル コードは次のとおりです。

//db1 データベースに接続
$mysqli = new mysqli("localhost", "root", "password", "db1" );

//db1
$sql1 = "SELECT * FROM Student";
$result1 = $mysqli->query($sql1);
while の Student テーブルをクエリします($row1 = $result1->fetch_assoc()) {

//输出db1中的student表的数据
echo "db1中student表的数据:" . $row1['id'] . " " . $row1['name'] . " " .$row1['age']. "<br/>";
ログイン後にコピー

}

//db2
$sql2 の教師テーブルをクエリする = "SELECT * FROM db2.Teacher" ;
$result2 = $mysqli->query($sql2);
while ($row2 = $result2->fetch_assoc()) {

//输出db2中的teacher表的数据
echo "db2中teacher表的数据:" . $row2['id'] . " " . $row2['name'] . " " .$row2['age']. "<br/>";
ログイン後にコピー

}
?>

上記のコードでは、mysqli 接続が 1 つだけ使用されていますが、複数のデータベースに対してクエリを実行できます。これは、「.」を使用してライブラリ名とテーブル名を接続することで実現できます。

3. 概要

この記事では、PHP を使用して 2 つのデータベースにクエリを実行する方法を紹介し、2 つの方法を提供します。 1 つ目の方法は、mysqli 拡張機能を使用してクエリ用の複数の接続を確立する方法で、2 つ目の方法は、同じ接続オブジェクトを使用して複数のデータベースをクエリする方法です。実際の開発では、ニーズに応じて適切な方法を選択してください。

以上がPHP を使用して 2 つのデータベースにクエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート