pg_send_prepare

指定したパラメータでプリペアドステートメントを作成するリクエストを 送信し、その結果を待たない

説明

intbool pg_send_prepare(PgSql\Connection $connection, string $statement_name, string $query)

指定したパラメータでプリペアドステートメントを作成するリクエストを 送信し、その結果を待ちません。

これは pg_prepare の非同期バージョンです。 リクエストが受け付けられた場合に true 、そうでない場合に false を返します。コールが成功した後、実際にプリペアドステートメントが 作成されたかどうかを調べるには pg_get_result を使用します。関数のパラメータは pg_prepare と同じように処理されます。pg_prepare と同様、 7.4 より前の PostgreSQL のバージョンでは正しく動作しません。

パラメータ

connection

PgSql\Connection クラスのインスタンス。

statement_name

プリペアドステートメントにつける名前。接続内で一意である必要があります。 "" が指定された場合は無名ステートメントが作成され、以前に定義された 無名ステートメントを上書きします。

query

パラメータ化した SQL 文。ひとつの文のみである必要があります (複数の文をセミコロンで区切る形式は使用できません)。パラメータを 使用する際は $1、$2 などの形式で参照されます。

戻り値

成功した場合に true 、失敗した場合に 0 を返します。 クエリの結果を確かめるには pg_get_result を使用します。

変更履歴

バージョン 説明
8.1.0 connection は、PgSql\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、リソース を期待していました。

例1 pg_send_prepare の使用法

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Could not connect");

  
// 実行するクエリを準備する
  
if (!pg_connection_busy($dbconn)) {
    
pg_send_prepare($dbconn"my_query"'SELECT * FROM shops WHERE name = $1');
    
$res1 pg_get_result($dbconn);
  }

  
// プリペアドクエリを実行する。文字列 "Joe's Widgets" は
  // エスケープの必要がないことに注意
  
if (!pg_connection_busy($dbconn)) {
    
pg_send_execute($dbconn"my_query", array("Joe's Widgets"));
    
$res2 pg_get_result($dbconn);
  }
  
  
// 同一プリペアドクエリを別のパラメータで実行する
  
if (!pg_connection_busy($dbconn)) {
    
pg_send_execute($dbconn"my_query", array("Clothes Clothes Clothes"));
    
$res3 pg_get_result($dbconn);
  }
  
?>

参考

  • pg_connect
  • pg_pconnect
  • pg_execute
  • pg_send_execute
  • pg_send_query_params