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