PHP マニュアル
前のページ |  | 次のページ

# pg_query_params

(PHP 5 >= 5.1.0RC1)

pg_query_params -- SQL コマンドとパラメータを分割してサーバにを送信し、その結果を待つ

## 説明

resource pg_query_params ( resource connection, string query, array params )
resource pg_query_params ( string query, array params )

コマンドをサーバに送信し、その結果を待ちます。パラメータを SQL コマンド とは別に渡すことが可能です。

pg_query_params() は pg_query() と似ていますが、追加の機能を有しています。それはパラメータ値が コマンド文字列と分離しているということです。 pg_query_params() は PostgreSQL 7.4 以降の接続でのみ サポートされます。それ以前のバージョンでは失敗します。

パラメータを使用する際は、`query` 文字列内で $1、$2 のように参照されます。`params` で 実際の値を指定します。`NULL` を指定すると、SQL の `NULL` とみなされます。

pg_query() に対する pg_query_params() の最大の利点は、パラメータの値を `query` 文字列から 分離できることです。そのため、退屈でエラーの元となりやすいクォート・ エスケープなどをしなくてもよくなります。pg_query() と異なり、pg_query_params() ではひとつの SQL コマンドしか実行できません（クエリ文字列にセミコロンを含めることは 可能です。しかしそれ以降にコマンドを続けることはできません）。

## パラメータ

`connection`

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

`query`

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

`params`

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

## 返り値

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

## 例

例 1. pg_query_params() の使用法

`<?php // "mary"という名前のデータベースに接続 $dbconn = pg_connect("dbname=mary"); // Joe's Widgets という名前の店を探す。"Joe's Widgets" を // エスケープする必要がないことに注意 $result = pg_query_params($dbconn, 'SELECT * FROM shops WHERE name = $1', array("Joe's Widgets")); // pg_query を使用した場合と比較 $str = pg_escape_string("Joe's Widgets"); $result = pg_query($dbconn, "SELECT * FROM shops WHERE name = '{$str}'"); ?>`

## 参考

pg_query()

前のページ | ホーム | 次のページ
pg_put_line | 上に戻る | pg_query