1

テスト用に次のコードを用意しましたが、2 番目のパラメーターが実際には機能していないことがわかりました。

$conn1 = mysql_connect("127.0.0.1", "xxxx", "xxxx");
$conn2 = mysql_connect("127.0.0.1", "xxxx", "xxxx");

mysql_select_db("test", $conn1);
mysql_select_db("yangshengfun", $conn2);

if (!$res = mysql_query("select * from proxy_ips limit 1", $conn1)) {
    echo mysql_error($conn1);
}


if (!$res = mysql_query("select * from wp_posts limit 1", $conn2)) {
    echo mysql_error($conn2);

データベース 'test' と 'yangshengfun' のテーブルは完全に異なります。このコードの実行中にエラーが発生しました:

Table 'yangshengfun.proxy_ips' doesn't exist

$conn2 に対して mysql_select_db を呼び出すと、$conn1 の現在のデータベースも変更されるようです。

4

4 に答える 4

2

これを試して

$conn1 = mysql_connect("127.0.0.1", "xxxx", "xxxx", true);
$conn2 = mysql_connect("127.0.0.1", "xxxx", "xxxx", true);

注 :mysql_*は非推奨です。mysqli_*または_pdo

于 2014-04-21T10:46:46.043 に答える
1

PHPマニュアルmysql_connect()のドキュメントから

同じ引数で mysql_connect() への 2 回目の呼び出しが行われた場合、新しいリンクは確立されませんが、代わりに、既に開かれているリンクのリンク識別子が返されます。new_link パラメータはこの動作を変更し、mysql_connect() が以前に同じパラメータで呼び出された場合でも、常に新しいリンクを開くようにします。SQL セーフ モードでは、このパラメーターは無視されます。


この ( mysql_*) 拡張機能は の時点で廃止さPHP 5.5.0れており、将来的に削除される予定です。代わりに、または拡張機能のプリペアド ステートメントを使用して、SQL インジェクション攻撃を回避する必要があります。MySQLiPDO_MySQL

于 2014-04-21T10:45:34.873 に答える