📌  相关文章
📜  PHP中mysqli_fetch_array()和mysqli_fetch_object()的区别(1)

📅  最后修改于: 2023-12-03 15:18:33.460000             🧑  作者: Mango

PHP中mysqli_fetch_array()和mysqli_fetch_object()的区别

在PHP中,mysqli_fetch_array()和mysqli_fetch_object()是两个常用的函数,用于从MySQL数据库查询结果集中获取数据。这两个函数的参数、返回值和使用方法有区别,下面我们来详细介绍一下。

mysqli_fetch_array()函数

mysqli_fetch_array()函数用于从MySQL数据库查询结果集中获取数据,并将数据以关联数组和数字索引数组的形式返回。函数原型如下:

mysqli_fetch_array(mysqli_result $result [, int $resulttype = MYSQLI_BOTH]);

其中,$result参数为mysqli_query()函数返回的结果集,$resulttype参数为可选参数,用于指定返回的数组类型,默认为MYSQLI_BOTH,即同时返回关联数组和数字索引数组。

下面是一个使用mysqli_fetch_array()函数获取查询结果的示例:

$conn = mysqli_connect("localhost", "username", "password", "dbname");
$result = mysqli_query($conn, "SELECT id, name, age FROM users");
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "id: " . $row["id"] . ", name: " . $row["name"] . ", age: " . $row["age"] . "<br>";
}
mysqli_free_result($result);
mysqli_close($conn);

在上面的示例中,我们使用mysqli_fetch_array()函数获取了查询结果集中的数据,并将其输出到浏览器中。

mysqli_fetch_object()函数

mysqli_fetch_object()函数用于从MySQL数据库查询结果集中获取数据,并将数据以对象的形式返回。函数原型如下:

mysqli_fetch_object(mysqli_result $result, string $class_name = "stdClass", array $params = null);

其中,$result参数为mysqli_query()函数返回的结果集,$class_name参数为可选参数,用于指定返回的对象类型,默认为"stdClass",即PHP内置的标准类型;$params参数为可选参数,用于指定构造函数的参数。

下面是一个使用mysqli_fetch_object()函数获取查询结果的示例:

class User {
    public $id;
    public $name;
    public $age;
}

$conn = mysqli_connect("localhost", "username", "password", "dbname");
$result = mysqli_query($conn, "SELECT id, name, age FROM users");
while ($row = mysqli_fetch_object($result, "User")) {
    echo "id: " . $row->id . ", name: " . $row->name . ", age: " . $row->age . "<br>";
}
mysqli_free_result($result);
mysqli_close($conn);

在上面的示例中,我们定义了一个User类,并使用mysqli_fetch_object()函数将查询结果集中的每一行数据转换为User对象,并输出到浏览器中。

总结

mysqli_fetch_array()函数返回关联数组和数字索引数组,使用方便,适合对数据进行简单操作。mysqli_fetch_object()函数返回对象,可以更好地封装数据,适合对数据进行复杂操作。程序员们在使用这两个函数时需要根据自己的需要选择合适的函数。