私はPDOを初めて使うので私を許してください。簡単な解決策があるかどうかはわかりません。私はしばらくオンラインで検索してきましたが、まだ答えを見つける必要がありません。同じforeachループ内で2つのPDOオブジェクトをどのように結合しますか?
私は接続している2つの異なるデータベースがあります。
try {
$db1= new PDO("sqlsrv:server=$server;Database = $dbname", $uid, $pwd);
$db2= new PDO("sqlsrv:server=$server;Database = $db2name", $db2uid, $pwd);
}
共通IDに基づいて各データベースのテーブルから情報を結合しようとしています。リストを印刷するために情報をループする必要があります。
$sql=
"SELECT tableA.name, tableB.messages
FROM tableA INNER JOIN tableB ON tableA.id = tableB.id";
foreach ($db1->query($sql) as $row) {
//HOW CAN I QUERY DB2??
$id = $row['id'];
$name = $row['name'];
$msg= $row['messages'];
echo $name . "etc...";
}
同じforeachループで結果を出力できるように、このコードを両方のPDOにクエリするにはどうしたらよいですか?
EDIT:tableBのIDとtableAのIDを一致させ、IDが一致したときにtableBのmsgフィールドの隣のtableAに名前フィールドを表示しようとしています。
感謝。しかし、メッセージの隣に対応するIDと名前が表示されるように、結果をどのようにマージしますか? – user1
@ user1 2つのデータベースをまたいだテーブル関係があることを意味しますか? –
@ user1もしそうなら、あなたは同時にそれらを照会する方が良いでしょう。私はこれがPDO接続で選択されているデータベースに関係なく動作するはずだと思う: 'SELECT db1.dbo.table.column1、db2.dbo.table.column2 FROM db1.dbo.table JOIN db2.dbo.table ON .... ' –