1

これは私が現在行っていることです:私は2つの接続を作成します:

$con_1 = mysql_connect('xxxxxxxx', 'db1', 'xxxxx') or die(mysql_error());
$con_2 = mysql_connect('xxxxxxxx', 'db2', 'xxxxx') or die(mysql_error());

各クエリの前に、私は

mysql_select_db('db1', $con_1);
... query

しかし、どうやらそれはうまくいきません。mysql_query では、$con_1 も渡す必要があります。接続を渡す必要がある場合、mysql_select_db を呼び出すステップをすべてスキップしてもよいですか?

または、クエリ関数を呼び出すときに最初と後で各 mysql_select_db を呼び出し、$con_x を渡すだけで、db の選択について心配する必要はありませんか?

4

2 に答える 2

1

データベースの選択は、接続リソースに関連付けられています。そのため、接続ごとに 1 回選択できます。

まったく呼び出さない場合mysql_select_db、すべてのクエリで、すべてのテーブルの前に明示的なデータベース プレフィックスを指定する必要がありますselect * from db1.table ...

于 2013-05-09T00:16:24.640 に答える
1

接続を渡す必要がある場合、mysql_select_db を呼び出すステップをすべてスキップしてもよいですか?

接続を確立した後、一度呼び出す必要があります


しかし、@Barmarが彼の回答で述べたように、電話をかける必要さえなく、mysql_select_db()そのために2つの別々の接続を用意する必要もありません。のように、クエリで完全修飾テーブル名を使用する必要がありますdbnametablename. この例を確認してください:

$con = mysql_connect(...);

mysql_query('SELECT * FROM `db1`.`foo`');
mysql_query('SELECT * FROM `db2`.`bar`');
于 2013-05-09T00:16:34.780 に答える