1.タイトルの通り、同時に開くことができますでしょうか?
日本PHPユーザー会ホームページでは以下の方法でできるとの回答があります。
$con1 = mysql_connect(localhost, user_id , pass);
$con2 = mysql_connect(localhost, user_id , pass);
mysql_select_db("db1",$con1);
mysql_select_db("db2",$con2);
========================================
db1
user_table
user_id(int),user_name(var)
==========================================
db2
main_table
main_id(int),user_id(int)
========================================
$sql_user_name = "SELECT user_name FROM user";
$result_user = mysql_query($sql_user_name,$con1);
$row_user = mysql_fetch_array($result_user);
echo $row_user[user_name];
のようにやっても
mysql_fetch_array()がでます。
mysql_queryは最後の接続を活かすとなっているのでこの部分の書き方を教えてください。
2.できたとしてリレーションを行うことができますでしょうか?
つまり
$sql_user_name = "SELECT user_name FROM db1.user_table,db2.main_table WHERE db1.user_table.user_id = db2.main_table.user_id"
というようなことはできますでしょうか?
長文で申し訳ありませんが、どうかよろしくお願いします。
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"
と言うようにやればいいと思います。
できない場合はどんなエラーが出るのか?
どのようにやったのか?
を書いていただければ解決の手がかりになります。
$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";
というやり方でできることがわかりました。ありがとうございました。
No.2
- 回答日時:
>2.できたとしてリレーションを行うことができますでしょうか?
この答えは、同一サーバ上に、
・複数のデータベースサーバを動作させているのか
・単一データベースサーバ上で複数データベースなのか
で、答えが変わってきます。
スクリプトから想像するに、1つのマシンに1つのデータベースサーバを動作させ、
2つのデータベースがあるだけのように思いますので、書かれているような
リレーション(というか結合処理)は可能です。
この回答への補足
これは1つのサーバーマシン上に、複数のデータベースがあります。(MySQLは1つです)
書かれているようなリレーション(というか結合処理)は可能です。
どのように書いたらよろしいのでしょうか?
No.1
- 回答日時:
1.
echo $row_user["user_name"];
とか
echo $row_user[0]["user_name"];
とかでも出ませんか?
2.
異なるDB間でリレーションさせることはできないと思います。
コネクションはDBに対して張られるので、2つのDBのコネクションを合体してクエリーを投げることは通常できません。
そういうAPIを誰かが作っていれば別ですが。
この回答への補足
返答ありがとうございます。
echo $row_user["user_name"];
とか
echo $row_user[0]["user_name"];
のいずれも出来ませんでした。
2.Accessとかでは、リンクファイルというような形式をとってクエリーが組めるのでできるのかと安易に思っていましたが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- PHP php ログイン 1 2022/11/01 00:24
- JavaScript Json のキーと値の出力の違いについて 2 2022/06/14 20:22
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- UNIX・Linux コマンドプロンプトでのユーザーのサインイン時間設定について 1 2022/08/09 09:09
- Windows 10 コマンドプロンプトでのユーザーのサインイン時間設定について 1 2022/08/09 20:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQLサーバから、項目の属性(型...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
[MySQL] UNIQUE制約の値を更新...
-
select文のwhere句に配列を入れ...
-
SQLにて特定の文字を除いた検索...
-
selectした大量データをinsert...
-
エクセルの関数について教えて...
-
sqlで、600行あるテーブルを100...
-
MySQLのint型で001と表示する方...
-
VIEWの元のテーブルのindexって...
-
複数テーブルのGROUP BY の使い...
-
Unionした最後にGROUP BYを追加...
-
Access パラメータクエリをcsv...
-
LAST_INSERT_IDで同時にアクセ...
-
PL/SQLの変数について
-
[SQLServer] テーブル名からカ...
-
VMwareがCDドライブを認識する...
-
1対多結合で多を絞り込み条件と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
センノシド異性体構造式
-
Unionした最後にGROUP BYを追加...
-
insertを高速化させたい
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
sqlで、600行あるテーブルを100...
-
エクセルの関数について教えて...
-
Access パラメータクエリをcsv...
-
URL と行番号の指定
-
複数テーブルのGROUP BY の使い...
-
PL/SQLの変数について
おすすめ情報