最近、PHP プロジェクトで ext/mysql から mysqli に切り替えました。そのプロジェクトでは、パラメータ セットを にmysql_connect
設定して、 の接続再利用機能を広範囲に使用しました。new_link
false
私が理解している限りでは、そのようなメカニズムはありませんmysqli_connect
。同じホストとユーザーが使用されていても、常に新しい接続が返されます。これは正しいです?再利用動作を模倣できる他の機能はありますか?
注意: ホストの先頭に を追加するとp:
、永続的な接続が作成されることがわかります。ただし、私のプロジェクトの一部は一時テーブルに依存しているため、これは私の場合は使用できません。
更新:
実際の mysqli オブジェクトは、データベースへのアクセスを管理する DB ハンドラー クラスに埋め込まれています。このハンドラーは、DB と対話するために常に使用されます。
問題を単純化しすぎたのは、mysqli がmysqli_connect
同一のパラメーターを使用して を複数回呼び出して単一の接続を自動的に再利用できるかどうかという問題に集中したかったからです。私のプロジェクトはフレームワークの拡張であり、複数のエントリ ポイントとフックを提供します。ホスティング フレームワークから拡張機能への関数呼び出しの順序または回数を制御できません。拡張機能の各部分は DB ハンドラーのインスタンスを作成しますが、実際の基礎となる接続を再利用できます。
DB ハンドラーの作成は、db-factory を介して行われます。したがって、おそらく何らかの接続キャッシュを自分で実装する必要があります...