(PHP 4, PHP 5, PHP 7, PHP 8)
pg_fetch_object — 提取一行作為對(duì)象
$result
, int $row
= ?, int $result_type
= ?): object
pg_fetch_object() 返回與所提取行的屬性相一致的一個(gè)對(duì)象。如果出錯(cuò)或者沒(méi)有更多行可供提取時(shí)則返回 false
。
pg_fetch_object() 和 pg_fetch_array() 相似,只有一點(diǎn)區(qū)別 - 返回一個(gè)對(duì)象而不是數(shù)組。間接的,這意味著只能通過(guò)字段名來(lái)訪問(wèn)數(shù)據(jù)而不能通過(guò)偏移量來(lái)訪問(wèn)(數(shù)字是非法的屬性名)。
row
是想要取得的行(記錄)的編號(hào)。第一行為 0。
除了速度之外,本函數(shù)和 pg_fetch_array() 完全一樣,而且?guī)缀鹾?pg_fetch_row() 一樣快(速度上的差別很?。?。
注意:
從 4.1.0 版本開(kāi)始,參數(shù)
row
變?yōu)榭蛇x參數(shù)。從 4.3.0 開(kāi)始,
result_type
默認(rèn)值為 PGSQL_ASSOC,而舊版本的默認(rèn)值是 PGSQL_BOTH。數(shù)字屬性在這里沒(méi)有用處,因?yàn)樵?PHP 中對(duì)象的屬性不能是數(shù)字。
result_type
參數(shù)在以后的版本中可能會(huì)刪除。
示例 #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");
$row = 0; // postgres needs a row counter
while ($data = pg_fetch_object($qu, $row)) {
echo $data->author . " (";
echo $data->year . "): ";
echo $data->title . "<br />";
$row++;
}
pg_free_result ($qu);
pg_close ($db_conn);
?>
注意:
從 4.1.0 開(kāi)始,
row
成為可選參數(shù)。每次調(diào)用 pg_fetch_object(),內(nèi)部的行計(jì)數(shù)器都會(huì)加一。
參見(jiàn) pg_query(),pg_fetch_array(),pg_fetch_row() 和 pg_fetch_result()。