pg_query
(PHP 4 >= 4.2.0, PHP 5)
pg_query — クエリを実行する
説明
$connection
], string $query
)
pg_query() 指定したデータベース
connection 上で query
を実行します。
エラーが発生して FALSE が返された場合、もし接続が正常なら
pg_last_error() 関数を使用してエラーの詳細情報が
取得可能です。
注意:
connectionは省略可能ですが、それは推奨されません。 なぜならスクリプトのバグが発見しにくくなるためです。
注意:
この関数は、以前は pg_exec() と呼ばれていました。 pg_exec() は互換性確保のためにまだ使用可能ですが、 新しい名前を使用することが推奨されています。
パラメータ
-
connection -
PostgreSQL データベース接続リソース。
connectionが指定されていない場合はデフォルトの接続が使用されます。 デフォルトの接続は、直近の pg_connect() あるいは pg_pconnect() によって作成されたものです。 -
query -
実行する 1 つまたは複数の SQL 文。複数の文が関数に渡された場合は、 明示的に BEGIN/COMMIT コマンドを指定していない限りはそれらの文は ひとつのトランザクションとして実行されます。しかし、1 回のコールで 複数のトランザクションを実行することは推奨されません。
クエリ内のデータは 適切にエスケープ する必要があります。
返り値
成功した場合にクエリ結果リソース、失敗した場合に FALSE を返します。
例
例1 pg_query() の例
<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occured.\n";
exit;
}
$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "An error occured.\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);
?>
参考
- pg_connect() - PostgreSQL 接続をオープンする
- pg_pconnect() - 持続的な PostgreSQL 接続をオープンする
- pg_fetch_array() - 行を配列として取得する
- pg_fetch_object() - 行をオブジェクトとして得る
- pg_num_rows() - 行数を返す
- pg_affected_rows() - 変更されたレコード(タプル)の数を返す