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

準備されたクエリの割り当て解除

    ステートメントの割り当てを解除するとき、pg_queryの戻り値 他の「ユーティリティステートメント」と同様に、成功したかどうかを示します。失敗するとfalseを返すはずです。例:

     if (!pg_query($cnx, "deallocate foobar")) {
       echo "Error deallocate: " . pg_last_error($cnx);
     }
     else {
      echo "deallocate successful";
     }
    

    これは次のように表示されます:

    割り当てを解除するステートメント名は、文字列リテラルではなく識別子であるため、一重引用符で囲まないでください。問題のある文字のために囲む必要がある場合は、 pg_escape_identifier (php> =5.4.4)

    セッションをクリーンアップするために、準備されたステートメントを繰り返し処理して1つずつ割り当てを解除する必要はありません。 DEALLOCATE ALL 代わりに、pg_queryを使用します 。

    1つのクエリでさらにクリーンアップを行う別のステートメントもあります: DISCARD ALL

    また、プリペアドステートメントは親セッションに対してローカルであり、スクリプトで終了するため、スクリプトが実際にpostgresから切断された場合でも、これは必要ありません。

    PHPによる持続的接続(pg_pconnect)を使用して、スクリプト間で接続の再利用を使用する場合は、明示的なクリーンアップが必要です。 )、またはpgBouncer のような接続プール (ただし、プーラー自体がDISCARD ALLを呼び出す場合があります。 構成によって異なります)。



    1. ImportError:connector.conversionという名前のモジュールがありません

    2. テーブルをコンマ値で結合する

    3. HTMLボタンを使用してPHP関数を呼び出す

    4. SQLiteにテーブルが存在するかどうかを確認する方法