📅  最后修改于: 2023-12-03 15:18:33.460000             🧑  作者: Mango
在PHP中,mysqli_fetch_array()和mysqli_fetch_object()是两个常用的函数,用于从MySQL数据库查询结果集中获取数据。这两个函数的参数、返回值和使用方法有区别,下面我们来详细介绍一下。
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()函数用于从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()函数返回对象,可以更好地封装数据,适合对数据进行复杂操作。程序员们在使用这两个函数时需要根据自己的需要选择合适的函数。