Php/docs/function.pg-execute

提供:Dev Guides
< Php
移動先:案内検索

pg_execute

(PHP 5 >= 5.1.0, PHP 7)

pg_execute 指定したパラメータを用いてプリペアドステートメントを実行するリクエストを 送信し、その結果を待つ


説明

pg_execute ([ resource $connection ], string $stmtname , array $params ) : resource|false

指定したパラメータを用いてプリペアドステートメントを実行するリクエストを 送信し、その結果を待ちます。

pg_execute()pg_query_params() と似ています。しかし、実行するコマンドはクエリを指定することで 決まるのではなく、事前に準備されたステートメントに値を指定する ことによって決まります。この機能のおかげで、繰り返し使用される コマンドに構文解析や実行計画作成が最初の一度だけで済みます。 実行するステートメントは、カレントのセッションで事前に準備しておく 必要があります。pg_execute() は、PostgreSQL 7.4 以降のバージョンの接続にのみ対応しています。それ以前のバージョンでは 失敗します。

パラメータは pg_query_params() と同じですが、 クエリ文字列のかわりにプリペアドステートメントの名前を指定する という点だけが違います。


パラメータ

connection

PostgreSQL データベース接続リソース。connection が指定されていない場合はデフォルトの接続が使用されます。 デフォルトの接続は、直近の pg_connect() あるいは pg_pconnect() によって作成されたものです。

stmtname

実行するプリペアドステートメントの名前。"" が指定された場合は 無名ステートメントが実行されます。名前は、事前に pg_prepare()pg_send_prepare() あるいは PREPARE SQL コマンドで準備されたものである 必要があります。

params

プリペアドステートメント中の $1、$2 などのプレースホルダを 置き換えるパラメータの配列。配列の要素数はプレースホルダの 数と一致する必要があります。

警告

この関数をコールする際に、要素の内容は文字列に変換されます。


返り値

成功した場合にクエリ結果リソース、失敗した場合に false を返します。


例1 pg_execute() の使用法

<?php// "mary"という名前のデータベースに接続$dbconn = pg_connect("dbname=mary");// 実行するクエリを準備$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');// プリペアドクエリの実行。文字列 "Joe's Widgets" のエスケープ処理は// 一切必要ないことに注意$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));// 同じプリペアドクエリを違うパラメータで実行$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));?>

参考

  • pg_prepare() - 指定したパラメータでプリペアドステートメントを作成するリクエストを 送信し、その完了を待つ
  • pg_send_prepare() - 指定したパラメータでプリペアドステートメントを作成するリクエストを 送信し、その結果を待たない
  • pg_query_params() - SQL コマンドとパラメータを分割してサーバーへ送信し、その結果を待つ