0

私は、1 つのデータベースに接続する現在のデータベース接続が開いている大規模なソフトウェアに取り組んでいますが、残念ながらクエリ呼び出しでリンク識別子を使用していません。

ここで、別のデータベースへの接続を開く必要がありました。これは正常に動作しますが、データベース関数へのすべての呼び出しは、私が開いた 2 番目の接続を使用しているように見えます (それらは異なる引数を使用します)。

これを回避して、最初に開いた接続を使用するようにクエリを戻す方法はありますか、link identifierそれとも他のすべての呼び出しにも a を追加する必要がありますか?

2番目の接続を閉じるだけで、それを使用できるようになりますか?

クエリでデータベースを一覧表示することで、2 番目の接続を開くことを回避できることはわかっていますが、両方のデータベースで同じ資格情報を使用したくありません。

4

1 に答える 1

0

PHPドキュメントからこの一口を見つけました..

マニュアルには次のように誤解を招く可能性があることに注意してください:-

「指定されたリンク識別子に関連付けられているサーバー上の現在アクティブなデータベースを設定します。以降の mysql_query() へのすべての呼び出しは、アクティブなデータベースで行われます。」

2 番目のステートメントは正しくないか、せいぜい不明確です。

mysql_query() マニュアル エントリは実際には、デフォルトで mysql_connect() によって開かれた最後のリンクを使用すると正しく述べています。

したがって、2 つの接続がある場合、mysql_query を呼び出すときに接続を指定するか、接続を再度発行して最初のデータベースがデフォルトになるようにする必要があります。

おそらく、2 つのデータベースが異なるサーバー上にある場合にのみ明らかになります。

http://www.php.net/manual/en/function.mysql-select-db.php#108375

そのため、2 番目のデータベースが完了したら、最初のデータベースへの別の接続を実行する必要があるようです。

于 2014-04-20T17:31:11.073 に答える