虚拟主机环境下mysqli_fetch_all的替代方案是什么?
mysqli_fetch_all 无法工作的替代方案
使用
mysqli_fetch_assoc()循环遍历结果集
这是兼容性最强的替代方案,无需依赖特定扩展配置,代码逻辑和mysqli_fetch_all(MYSQLI_ASSOC)完全等效:$conn = mysqli_connect("localhost","root","","file_upload"); $sql= "SELECT * FROM files"; $result = mysqli_query($conn,$sql); $files = []; while ($row = mysqli_fetch_assoc($result)) { $files[] = $row; }循环会逐行读取查询结果,直到没有剩余数据,每一行的关联数组都会被存入
$files数组。检查并启用mysqlnd扩展(若有权限)
mysqli_fetch_all()依赖mysqlnd驱动,部分虚拟主机可能未启用该扩展导致函数失效。如果你拥有主机配置权限,可以在php.ini中添加或修改以下配置:extension=mysqlnd保存后重启PHP服务即可恢复
mysqli_fetch_all()的正常使用,但多数虚拟主机用户无法修改这类配置,因此优先推荐第一种方案。使用
mysqli_fetch_array()循环实现等效效果
也可以通过mysqli_fetch_array()指定MYSQLI_ASSOC参数来完成,代码如下:$conn = mysqli_connect("localhost","root","","file_upload"); $sql= "SELECT * FROM files"; $result = mysqli_query($conn,$sql); $files = []; while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $files[] = $row; }
内容的提问来源于stack exchange,提问作者user17130244
相关产品推荐
相关产品推荐

