pg_fetch_object

(PHP 3 = 3.0.1, PHP 4 )

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() も参照下さい。

例 1Postgres によりオブジェクトを取得する

 ?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増加します。