MySQLi fetch_array() 函数详解

简介

在编写 PHP 程序时,经常需要将数据库中的数据进行读取和处理。MySQLi 是 PHP 提供的一种与 MySQL 数据库进行交互的扩展库,它提供了一系列的函数来实现数据库的连接、查询、插入、更新等操作。

其中,mysqli_fetch_array() 函数是 MySQLi 扩展库中的一个非常重要的函数,它用于从数据库中获取一行数据,并将其存储在一个数组中。在循环中使用该函数可以逐行地读取数据库查询结果集中的数据。

函数语法

mysqli_fetch_array($result, $resulttype)

  • $result:由 mysqli_query() 函数返回的结果集,它包含了一组数据行。
  • $resulttype:可选参数,指定返回的数组类型。默认为 MYSQLI_BOTH,表示返回一个包含关联索引和数字索引的数组;MYSQLI_ASSOC 表示返回一个关联索引数组;MYSQLI_NUM 表示返回一个数字索引数组。

示例代码

以下是一个示例代码,演示了如何使用 mysqli_fetch_array() 函数从数据库中读取数据,并将数据存储在一个数组中。

<?php
// 连接数据库
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "myDB";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// 查询数据
$sql = "SELECT id, name, age FROM users";
$result = mysqli_query($conn, $sql);

// 将数据存储在数组中
$users = array();
while ($row = mysqli_fetch_array($result)) {
    array_push($users, $row);
}

// 输出数据
foreach ($users as $user) {
    echo "ID: " . $user['id'] . ", Name: " . $user['name'] . ", Age: " . $user['age'] . "<br>";
}

// 关闭连接
mysqli_close($conn);
?>

以上代码通过连接到数据库,执行查询并将结果存储在 $result 中。然后,通过循环遍历 $result,使用 mysqli_fetch_array() 函数将每一行数据存储在 $row 中,再通过 array_push() 函数将 $row 添加到 $users 数组中。最后,通过遍历 $users 数组输出每个用户的信息。

数据库关系图

下面是本示例中涉及到的数据库表的关系图。

erDiagram
    CUSTOMER }|..|{ SALE : "购买"
    CUSTOMER }|..|{ PRODUCT : "拥有"
    SALE }|--|{ PRODUCT : "包含"

类图

下面是示例代码中涉及到的类的类图。

classDiagram
    class MySQLi {
        +__construct(host, username, password, dbname)
        +query(sql)
        +fetch_array(result, resulttype)
        +close()
    }
    class Result {
        +__construct(mysqli_result)
        +fetch_array(resulttype)
    }

总结

mysqli_fetch_array() 函数是一个非常有用的函数,可以帮助我们从 MySQL 数据库中读取数据并进行处理。在使用该函数时,需要先连接到数据库并执行查询语句,然后通过循环和 mysqli_fetch_array() 函数逐行读取数据。

需要注意的是,mysqli_fetch_array() 函数返回的数组可以通过关联索引或数字索引进行访问。此外,还可以通过指定第二个参数来控制返回的数组类型。

通过合理使用 mysqli_fetch_array() 函数,我们可以更加高效地处理数据库中的数据,从而提升程序的性能和可读性。

希望本文对你理解和使用 mysqli_fetch_array() 函数有所帮助!