(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)