array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.pg-fetch-object.php', 1 => 'pg_fetch_object', ), 'up' => array ( 0 => 'ref.pgsql.php', 1 => 'PostgreSQL 関数', ), 'prev' => array ( 0 => 'function.pg-fetch-assoc.php', 1 => 'pg_fetch_assoc', ), 'next' => array ( 0 => 'function.pg-fetch-result.php', 1 => 'pg_fetch_result', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/pgsql/functions/pg-fetch-object.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
pg_fetch_object — 行をオブジェクトとして得る
$result
,$row
= null
,$class
= "stdClass",$constructor_args
= []pg_fetch_object() は、取得した行のフィールド名に 対応するプロパティを有するオブジェクトを返します。オプションとして、 指定したクラスのコンストラクタにパラメータを渡してインスタンス化する ことも可能です。
注意: この関数は、 NULL フィールドに PHPの
null
値を設定します。
速度面では、この関数は pg_fetch_array() と同じであり、 pg_fetch_row() とほとんど同じ程度です (違いはわずかです)。
result
pg_query()、pg_query_params() や (様々な関数がありますが、特に) pg_execute() が返した PgSql\Result クラスのインスタンス。
row
取得する行番号。最初の行は 0 です。省略したり null
を指定したりした場合は、
次の行を取得します。
class
インスタンス化し、プロパティを設定して戻り値とするクラスの名前。 指定しない場合は stdClass オブジェクトが返されます。
constructor_args
class
オブジェクトのコンストラクタに
渡すオプションの配列。
結果の各フィールドに対応する属性を持つ object を返します。
データベースの NULL
値は null
として返します。
row
が結果の行数より大きい場合・行が存在しない場合
、そしてそれ以外のエラーが発生した場合は false
を返します。
constructor_args
が空ではないのに、
クラスにコンストラクタが存在しない場合、
ValueError がスローされます。
バージョン | 説明 |
---|---|
8.3.0 |
constructor_args が空ではないのに、
クラスにコンストラクタが存在しない場合、
ValueError がスローされるようになりました。
これより前のバージョンでは、Exception がスローされていました。
|
8.1.0 |
result は、PgSql\Result
クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、リソース を期待していました。
|
例1 pg_fetch_object() の例
<?php
$database = "store";
$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
echo "Failed connecting to postgres database $database\n";
exit;
}
$qu = pg_query($db_conn, "SELECT * FROM books ORDER BY author");
while ($data = pg_fetch_object($qu)) {
echo $data->author . " (";
echo $data->year . "): ";
echo $data->title . "<br />";
}
pg_free_result($qu);
pg_close($db_conn);
?>