(PHP 5, PHP 7, PHP 8)
mysqli_result::fetch_array -- mysqli_fetch_array — 将结果集的下一行作为关联数组、数字数组或两者获取
面向对象风格
过程式风格
从结果集中获取一行数据,并将其作为数组返回。对该函数的每次后续调用将返回结果集中的下一行,如果没有更多行,则返回 **null
**。
除了将数据存储在结果数组的数字索引中之外,此函数还可以通过使用结果集的字段名称作为键来将数据存储在关联索引中。
如果结果的两个或多个列具有相同的名称,则最后一个列将优先并覆盖任何先前的数据。要访问具有相同名称的多个列,必须使用该行的数字索引版本。
注意: 此函数返回的字段名称区分大小写。
注意: 此函数将 NULL 字段设置为 PHP **
null
** 值。
result
仅限过程式风格:由 mysqli_query()、mysqli_store_result()、mysqli_use_result() 或 mysqli_stmt_get_result() 返回的 mysqli_result 对象。
mode
此可选参数是一个常量,指示从当前行数据生成的数组类型。此参数的可能值是常量 **MYSQLI_ASSOC
**、**MYSQLI_NUM
** 或 **MYSQLI_BOTH
**。
通过使用 **MYSQLI_ASSOC
** 常量,此函数的行为将与 mysqli_fetch_assoc() 相同,而 **MYSQLI_NUM
** 的行为将与 mysqli_fetch_row() 函数相同。最后一种选项 **MYSQLI_BOTH
** 将创建一个包含两者属性的单个数组。
示例 #1 mysqli_result::fetch_array() 示例
面向对象风格
<?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 LIMIT 3";
$result = $mysqli->query($query);
/* 数字数组 */
$row = $result->fetch_array(MYSQLI_NUM);
printf("%s (%s)\n", $row[0], $row[1]);
/* 关联数组 */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
/* 关联和数字数组 */
$row = $result->fetch_array(MYSQLI_BOTH);
printf("%s (%s)\n", $row[0], $row["CountryCode"]);
过程式风格
<?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 LIMIT 3";
$result = mysqli_query($mysqli, $query);
/* 数字数组 */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf("%s (%s)\n", $row[0], $row[1]);
/* 关联数组 */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
/* 关联和数字数组 */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf("%s (%s)\n", $row[0], $row["CountryCode"]);
上面的示例将输出类似于以下内容
Kabul (AFG) Qandahar (AFG) Herat (AFG)