pg_fetch_object

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_fetch_object提取一行作為對象

說明

pg_fetch_object(resource $result, int $row = ?, int $result_type = ?): object

pg_fetch_object() 返回與所提取行的屬性相一致的一個(gè)對象。如果出錯或者沒有更多行可供提取時(shí)則返回 false。

pg_fetch_object()pg_fetch_array() 相似,只有一點(diǎn)區(qū)別 - 返回一個(gè)對象而不是數(shù)組。間接的,這意味著只能通過字段名來訪問數(shù)據(jù)而不能通過偏移量來訪問(數(shù)字是非法的屬性名)。

row 是想要取得的行(記錄)的編號。第一行為 0。

除了速度之外,本函數(shù)和 pg_fetch_array() 完全一樣,而且?guī)缀鹾?pg_fetch_row() 一樣快(速度上的差別很小)。

注意:

從 4.1.0 版本開始,參數(shù) row 變?yōu)榭蛇x參數(shù)。

從 4.3.0 開始,result_type 默認(rèn)值為 PGSQL_ASSOC,而舊版本的默認(rèn)值是 PGSQL_BOTH。數(shù)字屬性在這里沒有用處,因?yàn)樵?PHP 中對象的屬性不能是數(shù)字。

result_type 參數(shù)在以后的版本中可能會刪除。

示例 #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 開始,row 成為可選參數(shù)。每次調(diào)用 pg_fetch_object(),內(nèi)部的行計(jì)數(shù)器都會加一。

參見 pg_query(),pg_fetch_array()pg_fetch_row()pg_fetch_result()。