私は、PHPが自動的に開いているMySQL接続をスクリプトの最後で閉じることを知っています。永続的な接続を開く唯一の実行可能な方法は適切なPHP関数を使うことです。多くの質問が尋ねられ、答えられました。または不便 - - 私が知りたいのは、利益ある持続的な接続
EDITのではなく、一時的な接続を維持する: 各PHPのユーザーセッションの永続的な接続。例えば
、次のような文:PHPはスクリプトの最後で自動的に接続を終了します
session_start();
$connection = new mysqli($host, $user, $pass, $db);
$_SESSION['connection'] = $connection;
は、同じユーザーが同じセッション内のウェブサイトナビゲーションを横切って複数のクエリを実行するのに有用なmysqliのオブジェクトへの参照を設定するかもしれません。
接続をアクティブ化した直後に使用することになっている場合、それ以降のクエリ用に接続を開いたままにすることは適切な選択ではありませんか?たぶん、このアプローチは、複数のユーザーがMySQL接続を維持しているWebサイトからのHTTP要求ページである場合に、不都合な状況(およびセキュリティリスクの可能性)を引き起こす可能性があります。 私はもっと知りたいです。ありがとうございました。
私はまた、各要求はPHPのための新しいライフサイクルで質問 – Webeng
をupvotedあなたが他の場所で得ることができますように、それは永続的な状態を持っていない、これはパフォーマンスおよびセキュリティ:)に影響を与える方法を知っていただきたいと思います。あなたは、あなたが「最後に挿入ID」を取得し、(クエリが最初仕上げ)競合状態が表示される場合がありますたい、複数の要求/ユーザーに対して同じ接続を使用した場合それは不可能です、あなたに別のユーザーが挿入されているIDなど – JimL
を与えるかもしれませんセッションにシリアル化(mysqli接続を保存)するので、サンプルコードは期待どおりに動作しません。 – drew010