循环 PHP MySQLi 获取数组函数

Mehvish Ashiq 2024年2月15日
  1. 迭代 mysqli_fetch_array() 函数
  2. 结论
循环 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 获取数组函数 - 数据

mysqli_fetch_array() 函数使用 MYSQLI_NUM 模式

让我们编写以下程序,使用 mysqli_fetch_array() 函数从名为 db_students 的学生数据库中读取数据。以下代码将连接数据库并在失败时显示失败消息。

与数据库成功连接后,它将使用 mysqli_query 函数读取记录并将它们保存到 $result 变量中。mysqli_fetch_array() 将使用该结果变量和 MYSQLI_NUM(它的行为类似于 mysqli_fetch_row() 函数)作为参数,以将当前行显示为数字数组,其中索引范围从 0n-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_num 模式获取数据

mysqli_fetch_array() 函数使用 MYSQLI_ASSOC 模式

在这里,由于参数 MYSQLI_ASSOCmysqli_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_assoc 模式获取数据

mysqli_fetch_array() 函数使用 MYSQLI_BOTH 模式

使用带有参数 MYSQLI_BOTHmysqli_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_both 模式获取数据

循环 mysqli_fetch_array() 函数

我们将使用以下代码迭代 mysqli_query 并将输出与学生表记录进行比较。

请记住,你可以循环 mysqli_fetch_array()MYSQLI_ASSOCMYSQLI_NUMMYSQLI_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++;
    }
?>

输出:

循环 mysqli 获取数组函数 - 循环

你可以查看 IDFIRST_NAMELAST_NAMEAGE 并将其与名为 tb_students 的下表进行比较。

循环 mysqli 获取数组函数 - 数据

结论

上面的讨论得出结论,mysqli_fetch_array() 函数帮助我们从数据库中检索数据。

根据我们的需要和要求,我们可以使用它的输出模式,是否通过列索引或列名访问值,或两者兼而有之。然后,我们可以循环结果来查看表的每条记录。

作者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

相关文章 - MySQL PHP