php中mysqli_fentch四種常用查詢函數(shù)的比較表及實例演示詳解
一、比較表
以下是PHP中mysqli_fetch系列四種常用查詢函數(shù)(mysqli_fetch_array、mysqli_fetch_assoc、mysqli_fetch_row、mysqli_fetch_object)的比較表,涵蓋返回類型、索引方式、參數(shù)、性能特點及適用場景等關鍵方面,幫助開發(fā)者快速選擇合適函數(shù)。
| 函數(shù)名 | 返回類型 | 索引方式 | 參數(shù) | 使用示例 | 主要特點與適用場景 |
|---|---|---|---|---|---|
| mysqli_fetch_array | 數(shù)組 | 可選:關聯(lián)數(shù)組、數(shù)字索引數(shù)組或兩者兼有(默認) | result_type: MYSQLI_BOTH(默認)、MYSQLI_ASSOC、MYSQLI_NUM | $row = $result->fetch_array(); echo $row['name'] . $row[0]; | 靈活性高,但可能冗余;可通過參數(shù)控制返回格式,適合需同時訪問字段名和數(shù)字索引的場景。 |
| mysqli_fetch_assoc | 數(shù)組 | 僅關聯(lián)數(shù)組(字段名作為鍵) | 無 | $row = $result->fetch_assoc(); echo $row['name']; | 返回純關聯(lián)數(shù)組,代碼可讀性好;性能優(yōu)于mysqli_fetch_array(無多余索引),適合需明確字段名的查詢。 |
| mysqli_fetch_row | 數(shù)組 | 僅數(shù)字索引數(shù)組(按查詢字段順序) | 無 | $row = $result->fetch_row(); echo $row[0]; | 高效輕量(僅數(shù)字索引);適用于字段順序固定或不關心字段名的場景,如快速導出數(shù)據(jù)。 |
| mysqli_fetch_object | 對象 | 屬性訪問(字段名作為屬性) | 無 | $row = $result->fetch_object(); echo $row->name; | 面向?qū)ο箫L格;需通過->訪問屬性,適合集成到類或需鏈式操作的場景,但創(chuàng)建對象稍慢。 |
補充說明
性能對比:
mysqli_fetch_row通常最快(僅數(shù)字索引),mysqli_fetch_object稍慢(需實例化對象),而mysqli_fetch_array和mysqli_fetch_assoc居中。優(yōu)先選擇最簡索引方式以優(yōu)化性能。結果集處理:所有函數(shù)逐行移動結果集指針,末尾返回
false(數(shù)組函數(shù))或null(對象函數(shù))。錯誤處理:查詢失敗時
mysqli_query返回false,需先驗證結果集再調(diào)用fetch函數(shù)。推薦實踐:
明確字段名時用
mysqli_fetch_assoc(簡潔高效)。需混合索引時用
mysqli_fetch_array(參數(shù)控制)。面向?qū)ο蟠a用
mysqli_fetch_object。高性能批量處理用
mysqli_fetch_row。
此表綜合了函數(shù)的核心差異,實際選擇應結合查詢需求和數(shù)據(jù)訪問模式。
二、示例
以下是PHP中mysqli_fetch四種查詢函數(shù)的實例輸出對比,通過print_r展示不同返回格式(用<pre>標簽清晰呈現(xiàn)出不同,方便大家對比):
1.mysqli_fetch_array
特點:默認返回同時包含數(shù)字索引和關聯(lián)索引的數(shù)組(MYSQLI_BOTH)。
$result = $conn->query("SELECT id, name FROM users");
$row = $result->fetch_array(); // 默認 MYSQLI_BOTH
echo "<pre>"; print_r($row); echo "</pre>";輸出:
Array
(
[0] => 1 // 數(shù)字索引
[id] => 1 // 關聯(lián)索引
[1] => "Alice" // 數(shù)字索引
[name] => "Alice" // 關聯(lián)索引
)2.mysqli_fetch_assoc
特點:僅返回關聯(lián)索引數(shù)組(字段名作為鍵)。
$row = $result->fetch_assoc(); echo "<pre>"; print_r($row); echo "</pre>";
輸出:
Array
(
[id] => 1
[name] => "Alice"
)3.mysqli_fetch_row
特點:僅返回數(shù)字索引數(shù)組(按查詢字段順序)。
$row = $result->fetch_row(); echo "<pre>"; print_r($row); echo "</pre>";
輸出:
Array
(
[0] => 1
[1] => "Alice"
)4.mysqli_fetch_object
特點:返回對象,通過屬性訪問字段。
$row = $result->fetch_object(); echo "<pre>"; print_r($row); echo "</pre>";
輸出:
stdClass Object
(
[id] => 1
[name] => "Alice"
)關鍵區(qū)別總結:
索引方式:
- fetch_array:雙索引(數(shù)字+關聯(lián))。
- fetch_assoc:僅關聯(lián)索引。
- fetch_row:僅數(shù)字索引。
- fetch_object:對象屬性。
性能:
fetch_row最快(無額外索引),fetch_object稍慢(需實例化)。
適用場景:
- 明確字段名時用fetch_assoc;
- 需混合索引用fetch_array;
- 面向?qū)ο蟠a用fetch_object;
- 高性能處理用fetch_row。
總結
到此這篇關于php中mysqli_fentch四種常用查詢函數(shù)的比較表及實例演示的文章就介紹到這了,更多相關php mysqli_fentch常用查詢函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
php下實現(xiàn)在指定目錄搜索指定類型文件的函數(shù)
php在特定目錄中找特定類型的文件2008-10-10
關于PHP轉(zhuǎn)換超過2038年日期出錯的問題解決

