3

私は最近、中規模プロジェクトのサービス面を取得しました。前の開発者は、クラス (func1.php、func2.php など) ではなく、個別の php スクリプトとしてすべての関数を持っています...これらすべての「関数」はmysqli_connect、実際の「databaseonnection.php」ファイルを参照することで参照を作成します。これは、スクリプトが実行されるたびに (関数を呼び出さなければならないたびに) 新しい接続を作成することであり、私はそれをしたくありません。永続的なつながりを持とうと思っていたのですが、プロジェクトが日に日に大きくなっているので、それが手に負えなくなるのが心配です。それで、誰かが同様の状況に遭遇したことがありますか?データベースへの接続を処理する最良の方法は何ですか? どんな提案でも大歓迎です。

4

4 に答える 4

0

古い関数PDOとは対照的に、使用する方がはるかに優れていると思います。それははるかに堅牢なインターフェイスです。MYSQLmysql_connect

以下は、これを行うための基本的なコードです。

$db_handle = new PDO("mysql:host=".$db_host.";dbname=".$db_name.";port=".$db_port."", $db_username, $db_password, $connect_options);

$db_handleデータベース接続を表す PDO オブジェクト、$db_hostはホスト名 [通常は localhost]、$db_nameはデータベースの名前、$db_portはデータベースのポート番号 [通常は 3306]、$db_username$db_passwordデータベース ユーザーのアクセス資格情報、$connect_optionsはオプションのドライバー固有の接続です。オプション。

永続的な接続を有効にするには、接続を開く前にドライバー固有の接続オプションを設定する必要があります。$connect_options = array(PDO::ATTR_PERSISTENT => true);その後、以前のデータベース接続コードを実行します。

詳細については、PHP ドキュメント ( http://www.php.net/manual/en/pdo.construct.phpおよびhttp://php.net/manual/en/pdo.connections.php ) を参照してください。 .

永続的な接続の作成に関しては、スクリプトの最後で (もちろんすべてのデータベース操作の後) 開いているすべてのデータベース接続を、データベース ハンドルを無効にして閉じることをお勧めします: $db_handle = NULL;. 永続的な接続を開いたかどうかに関係なく、これを行う必要があります。直感に反するように聞こえますが、スクリプトが完了したらデータベース リソースを解放する必要があると思います。

[私の経験から]これを行うことによるパフォーマンス上の欠点は、ほとんどのアプリケーションでは無視できます。これは明らかに議論の余地のある主張であり、この点に関する戦略をさらに明確にするために、次のリンクも役立つ場合があります。

永続的な DB 接続 - 賛成か反対か?

ハッピーコーディング!

于 2013-08-06T21:56:55.563 に答える