2

最初のデータベースに接続して情報を取得し、2 番目のデータベースのテーブルをその情報で更新しようとしています。

ただし、接続を閉じないと、2 番目のクエリは常に最初のデータベースから取得しようとします。接続を閉じると、ソケット エラーが発生します。

私は Drupal を使用しています (私の最初のデータベースは Drupal データベースです)。これらのテーブルの 1 つから値を取得し、3 つの異なる PHP ページのうちの 1 つが読み込まれるたびに、それを Member Info データベースに入れたいと考えています。

これは可能ですか?

4

2 に答える 2

6

はい、複数の接続を作成できます。2 番目の引数として mysql_query 内のリンクを指定する必要があります。

例 :

$link1 = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link1) {
    die('Not connected : ' . mysql_error());
}

// second foo1
$db_selected_1 = mysql_select_db('foo1', $link1);
if (!$db_selected_1) {
    die ('Can\'t use foo : ' . mysql_error());
}

$link2 = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link2) {
    die('Not connected : ' . mysql_error());
}

// select foo2
$db_selected_2 = mysql_select_db('foo2', $link2);
if (!$db_selected_2) {
    die ('Can\'t use foo : ' . mysql_error());
}

// query on first db
mysql_query('SELECT * FROM 1 WHERE 1', $link1);

// query on second db
mysql_query('SELECT * FROM 1 WHERE 1', $link2);

両方のデータベースの同じサーバーに同じ資格情報がある場合は、次のようにするだけです。

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// select foo1
$db_selected = mysql_select_db('foo1', $link);

// query on first db
mysql_query('SELECT * FROM 1 WHERE 1', $link);

// select foo2
$db_selected = mysql_select_db('foo2', $link);

// query on second db
mysql_query('SELECT * FROM 1 WHERE 1', $link);

mysqli_ただし、またはを使用することをお勧めしますPDO

于 2012-07-09T18:58:22.027 に答える
1

複数の接続を同時に保存できます。

PHP には、それを妨げる制限はありません。

特定のコードに問題がある場合は、質問を更新してください。

于 2012-07-09T18:53:38.987 に答える