PHP Conference Japan 2024

mysqli_result::fetch_row

mysqli_fetch_row

(PHP 5、PHP 7、PHP 8)

mysqli_result::fetch_row -- mysqli_fetch_row將結果集中的下一行擷取為列舉陣列

說明

物件導向風格

public mysqli_result::fetch_row(): array|null|false

程序風格

mysqli_fetch_row(mysqli_result $result): array|null|false

從結果集中擷取一行資料,並將其作為列舉陣列傳回,其中每一欄都儲存在從 0(零)開始的陣列偏移中。後續每次呼叫此函式都會傳回結果集中的下一行,如果沒有更多行,則會傳回 null

注意此函式會將 NULL 欄位設定為 PHP null 值。

參數

result

僅限程序風格:由 mysqli_query()mysqli_store_result()mysqli_use_result()mysqli_stmt_get_result() 傳回的 mysqli_result 物件。

傳回值

傳回代表擷取行的列舉陣列,如果結果集中沒有更多行則傳回 null,如果失敗則傳回 false

範例

範例 1 mysqli_result::fetch_row() 範例

物件導向風格

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* 擷取物件陣列 */
while ($row = $result->fetch_row()) {
printf("%s (%s)\n", $row[0], $row[1]);
}

程序風格

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($mysqli, $query);

/* 擷取關聯陣列 */
while ($row = mysqli_fetch_row($result)) {
printf("%s (%s)\n", $row[0], $row[1]);
}

上述範例將輸出類似下列的內容

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

另請參閱

新增附註

使用者貢獻的附註 4 則附註

20
Stephen
17 年前
值得注意的是,MySQLi 函式(我推測 MySQL 函式也是)會擷取字串,無論 MySQL 資料類型為何。例如,如果您擷取具有整數欄位的列,該欄位和列的對應值仍然會以字串形式儲存在 mysql_fetch_row 傳回的陣列中。
4
sainthyoga2003 at gmail dot com
10 年前
請注意,mysqli_fetch() 雖然已被棄用,但仍在 PHP 函式列表中。mysqli_fetch_row() 現今是 MySQL 程序式風格所使用的方式,但未列在 PHP 函式中。
4
evangun2001 at yahoo dot fr
17 年前
請記住 fetch() 和 fetch_row() 是兩種不同的東西,且使用方式不同。

- fetch() 用於語句(例如已執行的預備語句),且需要與 bind_result() 搭配使用。

- fetch_row() 用於結果(例如 query() 的結果)。

因此,如果您想將 fetch_row() 與已執行的預備語句一起使用,首先您必須使用 mysqli_store_result() 或 mysqli_use_result() 從此語句中取得結果。
-3
maillist at pnpitalia.it
20 年前
出自 "README.PHP4-TO-PHP5-THIN-CHANGES"

4. 從 ext/mysql 移植到 ext/mysqli 時請小心。以下
函式在結果集中沒有更多資料時會傳回 NULL
(ext/mysql 的函式則傳回 FALSE)。

- mysqli_fetch_row()
- mysqli_fetch_array()
- mysqli_fetch_assoc()
To Top