とりあえずの備忘録

備忘録(びぼうろく)。主にパソコンやインターネットに関する様々なことを個人的にメモしています。

PHP PostgreSQLからデータを取得する

PHPからPostgreSQLに接続する部分と使用するデータベースはこちら。

PostgreSQLからデータを取得する(pg_fetch_array関数)

//データベースへ接続
$con = pg_connect(DB_CONNECT) or die('pg_connect is error');

//SQL実行
$sql = "select * from customers";
$rs = pg_query($con, $sql) or die('pg_query is error');

 

//データ取得
while ($row = pg_fetch_array($rs)) {
 foreach($row as $key => $value) {
  echo "row['" . $key . "']=" . $value . "<br />";
 }
}

//データベースを閉じる
pg_close($con);

「出力結果」

row['0']=1
row['customers_id']=1
row['1']=yamada
row['customers_name']=yamada
row['2']=2009-02-20 16:33:08.339802
row['entry_date']=2009-02-20 16:33:08.339802
row['0']=2
row['customers_id']=2
row['1']=sato
row['customers_name']=sato
row['2']=2009-02-21 16:33:08.346658
row['entry_date']=2009-02-21 16:33:08.346658
row['0']=3
row['customers_id']=3
row['1']=suzuki
row['customers_name']=suzuki
row['2']=2009-02-22 16:33:08.350654
row['entry_date']=2009-02-22 16:33:08.350654

pg_fetch_array関数を使うと、数値添字の配列と連想配列の両方でデータを返す。

PostgreSQLからデータを取得する(pg_fetch_row関数)

データ取得の処理以外は上記のスクリプトと一緒

//データ取得
while ($row = pg_fetch_row($rs)) {
 foreach($row as $key => $value) {
  echo "row['" . $key . "']=" . $value . "<br />";
 }
}

「出力結果」

row['0']=1
row['1']=yamada
row['2']=2009-02-20 16:33:08.339802
row['0']=2
row['1']=sato
row['2']=2009-02-21 16:33:08.346658
row['0']=3
row['1']=suzuki
row['2']=2009-02-22 16:33:08.350654

pg_fetch_row関数を使うと、数値添字の配列としてデータを返す。
また、pg_fetch_array($rs, NULL, PGSQL_NUM)としても同じ処理になる。

PostgreSQLからデータを取得する(pg_fetch_assoc関数)

データ取得の処理以外は上記のスクリプトと一緒

//データ取得
while ($row = pg_fetch_assoc($rs)) {
 foreach($row as $key => $value) {
  echo "row['" . $key . "']=" . $value . "<br />";
 }
}

「出力結果」

row['customers_id']=1
row['customers_name']=yamada
row['entry_date']=2009-02-20 16:33:08.339802
row['customers_id']=2
row['customers_name']=sato
row['entry_date']=2009-02-21 16:33:08.346658
row['customers_id']=3
row['customers_name']=suzuki
row['entry_date']=2009-02-22 16:33:08.350654

pg_fetch_assoc関数を使うと、連想配列としてデータを返す。
また、pg_fetch_array($rs, NULL, PGSQL_ASSOC)としても同じ処理になる。

行数やフィールド情報、行とフィールド位置を指定してデータを取得する方法はこちら。