ホームページ >バックエンド開発 >PHPチュートリアル >php mysqli::close()
Anonymous (24-Apr-2010 05:43)
mysqli_close() 関数とオブジェクト メソッドは、スクリプト内で mysql オブジェクトを再度使用する機能を削除するだけであり、基本的に表面上はすべてのオブジェクト パラメータを無効にするだけです。 。
処理化された mysqli_close() 関数と面方向のオブジェクトのメソッドのみを使用し、この後の表示では mysql オブジェクトを再使用し、基本的に表面上のみにあるすべてのオブジェクトのパラメータを使用します
少なくとも PHP5.3.2 と Windows が接続されている場合これは、使用されている TCP ソケットを実際に閉じないという点で、古い mysql_close() 関数とは異なります。 PHP によって使用されている TCP ソケットを実際に閉じて解放するには、常に mysqli_close() の前に mysqli_kill() 関数を使用する必要があります。 スクリプト実行後のガベージ コレクションや mysqli_close() は、それ自体で TCP ソケットを強制終了しません。 そうしないと、ソケットは約 30 秒間「待機」状態のままになり、追加のページのロードや接続の試行は、開いている TCP 接続の総数を増やすだけになります。 この待ち時間は PHP 設定では設定できないようです。
少なくとも利用中の Windows の tcp 接続のこのバージョンの php では、古い関数は存在せず、実際に使用されている tcp 接続では、mysqli_close() の前に mysqli_kill() 関数が使用され、保護されています。この tcp 接続は、この tcp 接続を約 30 秒間待機し続けます。また、このバージョンでは、mysqli で作成されたリンクは「非アクティブ化」することができず、アクティブ化されるまでプロセス メモリに蓄積され続けます。 PHP サーバーまたはプロセスが再起動され、基本的に mysqli.max_links = -1 が必要になります。
さらに、このバージョンでは、mysqli で作成された接続は無能に設定できず、接続はこのプロセス中に蓄積されるため、知道php サービスまたはプロセスの重複により、mysqli.max_links = -1 に設定できます