PostgreSQLでプレースホルダーを使ってSELECT文を発行する方法
接続の参考:PostgreSQLへ接続](http://www.phpbook.jp/tutorial/postgresql/index3.html)
プレースホルダーでの発行は以下を参考
PHPでのSQLインジェクション対策 – プレースホルダ編
pg_execute
SELECT文の例
$dbconn = pg_connect("host=".DB_SERVER." dbname=".DB." user=".DB_USER." password=".DB_PW);
$result = pg_prepare($dbconn, "", 'SELECT * FROM dtb_order WHERE order_id = $1');
$result = pg_execute($dbconn, "", array($oid));
こうすると、$resultには、resource型の値が入ってくる。
そこから実際のデータを取得するためには、pg_fetch_array
を使用する。
第3引数にPGSQL_NUM
を指定すると、数字の配列で、
PGSQL_ASSOC
を指定すると、連想配列の形式で取得出来る。
そして、全ての行にアクセスするには、pg_num_rows
を使用して何行返ってきたかを取得する。
その数字をカウントとして使用して、for文で回すことで全件取得する事が出来る。
for ($i = 0 ; $i < pg_num_rows($result) ; $i++){
$rows = pg_fetch_array($result, NULL, PGSQL_ASSOC);
var_dump($rows);
}
接続の切断は以下。
$close_flag = pg_close($dbconn);
if($close_flag) echo "切断成功";