一、什么是mysqli_fetch_all
mysqli_fetch_all() 函数从结果集中取得所有行作为关联数组、数字数组或二者兼有。mysqli_fetch_all() 函数启动不支持的缓冲区。在调用本函数之前您需要调用mysqli_store_result() 或 mysqli_use_result()。
二、mysqli_fetch_all的语法
mysqli_fetch_all ( mysqli_result $result , int $resulttype = MYSQLI_NUM ) : mixed
$result:mysqli_query函数的返回值
$resulttype:指定返回结果集类型,可选值有MYSQLI_ASSOC(返回关联数组)、MYSQLI_NUM(返回数字索引数组)、MYSQLI_BOTH(返回同时包含数字索引和关联数组),默认为MYSQLI_NUM。
三、mysqli_fetch_all的返回值
mysqli_fetch_all() 函数返回一个包含所有选定行的数组。
数组的结构取决于使用二进制或文本类型返回每列值的方式。
返回二进制时,数组中的每个子数组包括底层二进制数据的副本。返回文本时,数组中的每个子数组包括每列的字符串表示形式。
四、mysqli_fetch_all的应用场景
mysqli_fetch_all可用于从MySQL数据库中读取数据并将其存储在PHP中,以便后续的数据处理和操作。比如进行数据分析、数据可视化等。
五、mysqli_fetch_all的使用示例
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3 OFFSET 2"; if ($result = $mysqli->query($query)) { /* fetch associative array */ $assocArray = mysqli_fetch_all($result, MYSQLI_ASSOC); print_r($assocArray); /* fetch numeric array */ $numericArray = mysqli_fetch_all($result, MYSQLI_NUM); print_r($numericArray); /* fetch associative and numeric array */ $assocAndNumericArray = mysqli_fetch_all($result, MYSQLI_BOTH); print_r($assocAndNumericArray); /* free result set */ $result->free(); } /* close connection */ $mysqli->close();
六、mysqli_fetch_all的注意事项
1、在调用mysqli_fetch_all()函数之前,必须先调用mysqli_store_result()或mysqli_use_result()。
2、当从数据库中读取大量数据时,使用$resulttype参数为MYSQLI_ASSOC的mysqli_fetch_all函数将会消耗大量的内存,因此,建议避免将大量数据存储在该函数返回的数组中。
3、mysqli_fetch_all函数返回的数组属性与mysqli_result对象的属性有关,因此,当mysqli_result对象的属性发生变化时,mysqli_fetch_all函数返回的数组也会发生变化。
七、小结
mysqli_fetch_all是一个方便的函数,能够从MySQL数据库中获取数据并以数组的形式返回,使得数据的处理更加灵活方便。使用时需要注意,特别是在读取大量数据时,需要消耗大量的内存。