• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同じサーバーで、異なるデータベースを同時に開くことはできますか?)

同じサーバーで異なるデータベースを同時に開くことはできる?

このQ&Aのポイント
  • 同じサーバーで異なるデータベースを同時に開くことは可能ですか?日本PHPユーザー会ホームページでは以下の方法でできるとの回答があります。
  • 同じサーバーで複数のデータベースを同時に開く場合、複数の接続を確立する必要があります。具体的な方法としては、異なる接続オブジェクトを作成し、それぞれのデータベースに接続することができます。
  • また、データベース間でのリレーションを行うことも可能です。例えば、異なるデータベースのテーブルを結合してクエリを実行することで、データの関連性を取得することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.3

同じMysqlでやるのでしたら、 まず接続IDが二つのDBの接続権限(と言うかselect権限)がついているかを確認してください。 で、あとは質問文の通り、 $sql_user_name = "SELECT user_name FROM db1.user_table,db2.main_table WHERE db1.user_table.user_id = db2.main_table.user_id" と言うようにやればいいと思います。 できない場合はどんなエラーが出るのか? どのようにやったのか? を書いていただければ解決の手がかりになります。

hola1973
質問者

お礼

$x = mysql_connect(localhost,user,pass); mysql_select_db('db1',$x); mysql_select_db('db2',$x); $sql = "SELECT * FROM db1.table1,db2.table2 WHERE table1.id = table2.id"; というやり方でできることがわかりました。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

>2.できたとしてリレーションを行うことができますでしょうか? この答えは、同一サーバ上に、 ・複数のデータベースサーバを動作させているのか ・単一データベースサーバ上で複数データベースなのか で、答えが変わってきます。 スクリプトから想像するに、1つのマシンに1つのデータベースサーバを動作させ、 2つのデータベースがあるだけのように思いますので、書かれているような リレーション(というか結合処理)は可能です。

hola1973
質問者

補足

これは1つのサーバーマシン上に、複数のデータベースがあります。(MySQLは1つです) 書かれているようなリレーション(というか結合処理)は可能です。 どのように書いたらよろしいのでしょうか?

すると、全ての回答が全文表示されます。
  • cyanberry
  • ベストアンサー率50% (117/230)
回答No.1

1. echo $row_user["user_name"]; とか echo $row_user[0]["user_name"]; とかでも出ませんか? 2. 異なるDB間でリレーションさせることはできないと思います。 コネクションはDBに対して張られるので、2つのDBのコネクションを合体してクエリーを投げることは通常できません。 そういうAPIを誰かが作っていれば別ですが。

hola1973
質問者

補足

返答ありがとうございます。 echo $row_user["user_name"]; とか echo $row_user[0]["user_name"]; のいずれも出来ませんでした。 2.Accessとかでは、リンクファイルというような形式をとってクエリーが組めるのでできるのかと安易に思っていましたが・・・

すると、全ての回答が全文表示されます。