pg_fetch_object
(PHP 3 >= 3.0.1, PHP 4, PHP 5)
pg_fetch_object -- 行をオブジェクトとして得る
説明
object
pg_fetch_object ( resource result, int row [, int result_type] )
pg_fetch_object()は、取得した行に対応するプロ
パティを有するオブジェクトを返します。この関数は、行がもうない場
合またはエラーにはFALSEを返します。
pg_fetch_object()は
pg_fetch_array()に似ていますが、配列の代わりに
オブジェクトが返されという違いがあります。間接的に、このことはデー
タがオフセットではなくフィールド名によってのみアクセス可能である
ことを意味します。(数字はプロパティ名として使用できません。)
row は、取得する行(レコード)番号です。最初の
レコードは0です。
速度面では、この関数は、pg_fetch_array()と同じであり、
pg_fetch_row()とほとんど同じ程度です。
(違いはわずかです)
注意:
result_typeに関して従来のバージョンのデフォ
ルト値は、PGSQL_BOTHでしたが、4.3.0から
result_typeのデフォルトはPGSQL_ASSOCとなっ
ています。PHPではプロパティ名に数値を使用することはできないため、
プロパティ名に数値を使用することはできません。
result_typeは、将来的なバージョンでは削除さ
れる可能性があります。
pg_query(), pg_fetch_array(),
pg_fetch_row(), pg_fetch_result()
も参照ください。
例 1. Postgres によりオブジェクトを取得する
<?php $database = "verlag"; $db_conn = pg_connect ("host=localhost port=5432 dbname=$database"); if (!$db_conn): ?> <H1>Failed connecting to postgres database <? echo $database ?></H1> <?php exit; endif; $qu = pg_query ($db_conn, "SELECT * FROM verlag ORDER BY autor"); $row = 0; // Postgresでは他のデータベースと異なり、行カウンタが必要 while ($data = pg_fetch_object ($qu, $row)) { echo $data->autor." ("; echo $data->jahr ."): "; echo $data->titel."<BR>"; $row++; } ?> <PRE> <?php $fields[] = Array ("autor", "Author"); $fields[] = Array ("jahr", " Year"); $fields[] = Array ("titel", " Title"); $row= 0; // Postgresでは他のデータベースと異なり、行カウンタが必要 while ($data = pg_fetch_object ($qu, $row)) { echo "----------\n"; reset ($fields); while (list (,$item) = each ($fields)): echo $item[1].": ".$data->$item[0]."\n"; endwhile; $row++; } echo "----------\n"; ?> </PRE> <?php pg_free_result ($qu); pg_close ($db_conn); ?>
|
|
注意:
4.1.0以降、rowはオプションとなっています。
pg_fetch_object() をコールすることにより、内部
的なレコードカウンタは1増加します。