sql >> データベース >  >> RDS >> Mysql

ZendDBがデータベース接続を管理する方法

    接続の作成

    Adapterクラスのインスタンスを作成しても、RDBMSサーバーにすぐには接続されません 。アダプタは接続パラメータを保存し、初めてオンデマンドで実際の接続を確立します クエリを実行する必要があります。これにより、Adapterオブジェクトの作成が迅速かつ安価になります。アプリケーションが処理している現在のリクエスト中にデータベースクエリを実行する必要があるかどうかわからない場合でも、アダプタのインスタンスを作成できます。

    アダプタを強制的にRDBMSに接続する必要がある場合は、getConnection()メソッドを使用します。このメソッドは、それぞれのPHPデータベース拡張機能で表される接続のオブジェクトを返します。たとえば、PDOドライバーにAdapterクラスのいずれかを使用する場合、getConnection()は、特定のデータベースへのライブ接続として開始した後、PDOオブジェクトを返します。

    無効なアカウントクレデンシャル、またはRDBMSサーバーへの接続のその他の失敗の結果としてスローされる例外をキャッチしたい場合は、接続を強制すると便利です。これらの例外は接続が確立されるまでスローされないため、データベースに対する最初のクエリ時ではなく、1つの場所で例外を処理すると、アプリケーションコードを簡素化するのに役立ちます。

    さらに、アダプタをシリアル化して、たとえばセッション変数に格納することもできます。これは、アダプター自体だけでなく、Zend_Db_Selectオブジェクトなど、アダプターを集約する他のオブジェクトにも非常に役立ちます。デフォルトでは、アダプターはシリアル化できます。不要な場合は、Zend_Db::ALLOW_SERIALIZATIONオプションをFALSEで渡すことを検討してください。上記の例を参照してください。遅延接続の原則を尊重するために、アダプターは、シリアル化されていない場合、それ自体を再接続しません。次に、getConnection()を自分で呼び出す必要があります。アダプターオプションとしてTRUEを指定してZend_Db::AUTO_RECONNECT_ON_UNSERIALIZEを渡すことにより、アダプターを自動再接続できます。

    接続を閉じる

    通常、データベース接続を閉じる必要はありません。 PHPは、すべてのリソースとリクエストの終了を自動的にクリーンアップします。データベース拡張機能は、リソースオブジェクトへの参照がクリーンアップされるときに接続を閉じるように設計されています。

    ただし、多くのデータベース接続を開始する長期間のPHPスクリプトがある場合は、RDBMSサーバーの容量を使い果たしないように、接続を閉じる必要がある場合があります。アダプタのcloseConnection()メソッドを使用して、基盤となるデータベース接続を明示的に閉じることができます。

    リリース1.7.2以降、メソッドisConnected()を使用して現在RDBMSサーバーに接続していることを確認できます。これは、接続リソースが開始され、閉じられていないことを意味します。この関数は現在、たとえばサーバー側の接続の終了をテストできません。これは、接続を閉じるために内部的に使用されます。これにより、エラーなしで接続を複数回閉じることができます。 PDOアダプターの場合は1.7.2より前にすでに当てはまりましたが、他のアダプターの場合はそうではありませんでした。

    詳細情報




    1. データベース+Windows認証+ユーザー名/パスワード?

    2. SQLのmongodb変換INSERT...SELECT

    3. コマンドラインを使用したSQLデータベースの移行

    4. mysqlをmysqliに変換する-スーパーグローバル接続オブジェクトを取得する方法は?