略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: mysqli_result::fetch_row

2024-04-29

mysqli_result::fetch_row

mysqli_fetch_row

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_row -- mysqli_fetch_rowFetch the next row of a result set as an enumerated array

说明

面向对象风格

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

过程化风格

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

Fetches one row of data from the result set and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to this function will return the next row within the result set, or null if there are no more rows.

注意: 此函数将 NULL 字段设置为 PHP null 值。

参数

result

仅以过程化样式:由 mysqli_query()mysqli_store_result()mysqli_use_result()mysqli_stmt_get_result() 返回的 mysqli_result 对象。

返回值

Returns an enumerated array representing the fetched row, null if there are no more rows in the result set, 或者在失败时返回 false.

范例

示例 #1 mysqli_result::fetch_row() example

面向对象风格

<?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);

/* fetch object array */
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);

/* fetch associative array */
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)

参见

add a noteadd a note

User Contributed Notes 4 notes

up
20
Stephen
15 years ago
It's worth noting that the MySQLi functions (and, I presume, the MySQL functions) fetch a string regardless of the MySQL data type. E.g. if you fetch a row with an integer column, the corresponding value for that column and row will still be stored as a string in the array returned by mysql_fetch_row.
up
4
sainthyoga2003 at gmail dot com
8 years ago
Note that mysqli_fetch() is deprecated but still is in PHP function list. mysqli_fetch_row() is nowadays mysql procedural style used, but is not listed in PHP functions.
up
4
evangun2001 at yahoo dot fr
14 years ago
Remember that fetch() and fetch_row() are two different things, and differ in the way to use them.

- fetch() is used on a statement (like an executed prepared statement) and needs to be used in association with bind_result().

- fetch_row() is used on a result (like the result of query()).

As a consequence, if you want to use to use fetch_row() with an executed prepared statement, first you'll have to get the result out of this statement with mysqli_store_result() or mysqli_use_result().
up
3
maillist at pnpitalia.it
18 years ago
from "README.PHP4-TO-PHP5-THIN-CHANGES"

4. Be careful when porting from ext/mysql to ext/mysqli. The following
   functions return NULL when no more data is available in the result set
   (ext/mysql's functions return FALSE).

    - mysqli_fetch_row()
    - mysqli_fetch_array()
    - mysqli_fetch_assoc()

官方地址:https://www.php.net/manual/en/mysqli-result.fetch-row.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3