Php/docs/function.pg-query

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

pg_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_queryクエリを実行する


説明

pg_query ([ resource $connection ], string $query ) : resource|false

pg_query() は、指定したデータベース connection 上で query を実行します。 特別な理由がない限り、この関数よりも pg_query_params() を使うほうがいいでしょう。

エラーが発生して false が返された場合、もし接続が正常なら pg_last_error() 関数を使用してエラーの詳細情報が 取得可能です。

注意:

connectionは省略可能ですが、それは推奨されません。 なぜならスクリプトのバグが発見しにくくなるためです。

注意:

この関数は、以前は pg_exec() と呼ばれていました。 pg_exec() は互換性確保のためにまだ使用可能ですが、 新しい名前を使用することが推奨されています。

パラメータ

connection

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

query

実行する 1 つまたは複数の SQL 文。複数の文が関数に渡された場合は、 明示的に BEGIN/COMMIT コマンドを指定していない限りはそれらの文は ひとつのトランザクションとして実行されます。しかし、1 回のコールで 複数のトランザクションを実行することは推奨されません。

警告

ユーザーから受け取ったデータを文字列に直接組み込むのは危険で、SQL インジェクション の脆弱性を引き起こしがちです。クエリ文字列に直接埋め込むのではなく、 pg_query_params() を使ってパラメータとして指定することを推奨します。

ユーザーから受け取ったデータをクエリ文字列に直接埋め込む場合は、 適切にエスケープ する必要があります。


返り値

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


例1 pg_query() の例

<?php$conn = pg_pconnect("dbname=publisher");if (!$conn) {  echo "An error occurred.\n";  exit;}$result = pg_query($conn, "SELECT author, email FROM authors");if (!$result) {  echo "An error occurred.\n";  exit;}while ($row = pg_fetch_row($result)) {  echo "Author: $row[0]  E-mail: $row[1]";  echo "<br />\n";} ?>

例2 pg_query() で複数の文を使用する例

<?php$conn = pg_pconnect("dbname=publisher");// これらの文がひとつのトランザクションとして実行されます$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";$query .= "UPDATE authors SET author=NULL WHERE id=3;";pg_query($conn, $query);?>

参考