循环 PHP MySQLi 获取数组函数
MySQLi fetch 函数用于从数据库服务器访问数据。获取数据后,你还可以遍历 MySQLi 查询。
在本文中,我们将看到 mysqli_fetch_array() 函数的使用以及迭代访问数据的方法。
这个扩展是在 PHP 5.0.0 版本中引入的,设计它的目的是与 MySQL 4.1.13 或更高版本一起工作。我们在本教程中使用 PHP 版本 7.4.1 和 phpMyAdmin。
你可以从其官方网站下载 XAMPP。 (如果你有 XAMPP,则不必单独安装 MySQL 和 PHP)。
迭代 mysqli_fetch_array() 函数
mysqli_fetch_array() 用于使用 $result 作为第一个参数从数据库中检索当前行的数据,将输出保存为关联数组、数值数组或两者(取决于第二个参数)。现在,我们的学生数据库中有以下数据。

mysqli_fetch_array() 函数使用 MYSQLI_NUM 模式
让我们编写以下程序,使用 mysqli_fetch_array() 函数从名为 db_students 的学生数据库中读取数据。以下代码将连接数据库并在失败时显示失败消息。
与数据库成功连接后,它将使用 mysqli_query 函数读取记录并将它们保存到 $result 变量中。mysqli_fetch_array() 将使用该结果变量和 MYSQLI_NUM(它的行为类似于 mysqli_fetch_row() 函数)作为参数,以将当前行显示为数字数组,其中索引范围从 0 到 n-1。
示例代码:
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "db_students";
$connection = mysqli_connect($host, $username, $password, $database);
if (mysqli_connect_errno()) {
echo "Database connection failed.";
}
$sql = "SELECT * FROM tb_students";
$result = mysqli_query($connection, $sql);
$row = mysqli_fetch_array($result,MYSQLI_NUM);
print_r($row)
?>
输出:

mysqli_fetch_array() 函数使用 MYSQLI_ASSOC 模式
在这里,由于参数 MYSQLI_ASSOC,mysqli_fetch_array() 函数的行为类似于 mysqli_fetch_assoc(),并且表的列名将显示为数组的索引。练习以下代码并观察输出。
示例代码:
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "db_students";
$connection = mysqli_connect($host, $username, $password, $database);
if (mysqli_connect_errno()) {
echo "Database connection failed.";
}
$sql = "SELECT * FROM tb_students";
$result = mysqli_query($connection, $sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
print_r($row)
?>
输出:

mysqli_fetch_array() 函数使用 MYSQLI_BOTH 模式
使用带有参数 MYSQLI_BOTH 的 mysqli_fetch_array() 函数会将数据存储到我们可以使用列名和列索引访问的数组中。练习以下代码并查看输出。
示例代码:
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "db_students";
$connection = mysqli_connect($host, $username, $password, $database);
if (mysqli_connect_errno()) {
echo "Database connection failed.";
}
$sql = "SELECT * FROM tb_students";
$result = mysqli_query($connection, $sql);
$row = mysqli_fetch_array($result,MYSQLI_BOTH);
print_r($row)
?>
输出:

循环 mysqli_fetch_array() 函数
我们将使用以下代码迭代 mysqli_query 并将输出与学生表记录进行比较。
请记住,你可以循环 mysqli_fetch_array()、MYSQLI_ASSOC、MYSQLI_NUM 和 MYSQLI_BOTH 的所有模式。使用 mysqli_fetch_array() 时,你必须将其作为参数传递。
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "db_students";
$connection = mysqli_connect($host, $username, $password, $database);
if (mysqli_connect_errno()) {
echo "Database connection failed.";
}
$sql = "SELECT * FROM tb_students";
$result = mysqli_query($connection, $sql);
$std_num=0;
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
echo "Student Number ".$std_num."<br>";
echo "ID: ".$row['ID']."<br>";
echo "First Name: ".$row['FIRST_NAME']."<br>";
echo "Last Name: ".$row['LAST_NAME']."<br>";
echo "Age: ".$row['AGE']."<br>";
echo "<br><br>";
$std_num++;
}
?>
输出:

你可以查看 ID、FIRST_NAME、LAST_NAME、AGE 并将其与名为 tb_students 的下表进行比较。

结论
上面的讨论得出结论,mysqli_fetch_array() 函数帮助我们从数据库中检索数据。
根据我们的需要和要求,我们可以使用它的输出模式,是否通过列索引或列名访问值,或两者兼而有之。然后,我们可以循环结果来查看表的每条记录。
