Php 致命错误:调用未定义的方法mysqli_result::fetch_all()
我对Ubuntu 10.04中的PHP有问题。当我尝试使用mysqli_result::fetch_时,会出现以下所有错误: 调用未定义的方法mysqli\u result::fetch\u all() 但是,它可以在Windows XP中工作 守则:Php 致命错误:调用未定义的方法mysqli_result::fetch_all(),php,mysqli,fetchall,mysqlnd,Php,Mysqli,Fetchall,Mysqlnd,我对Ubuntu 10.04中的PHP有问题。当我尝试使用mysqli_result::fetch_时,会出现以下所有错误: 调用未定义的方法mysqli\u result::fetch\u all() 但是,它可以在Windows XP中工作 守则: $result = $this->dbh->query('SELECT [...] '); return $result->fetch_all(MYSQLI_ASSOC); 我不想在循环中使用fetch_assoc,因为我将结
$result = $this->dbh->query('SELECT [...] ');
return $result->fetch_all(MYSQLI_ASSOC);
我不想在循环中使用fetch_assoc,因为我将结果发送到另一层进行处理
我使用的是PHP5.4.4。使用php-m | grep mysqlmysqlnd模块时,它不会出现。如何安装它?这可能是问题所在吗
mysqli_result::fetch_all()需要MySQL本机驱动程序(mysqlnd)
你可能会错过它
看看这些帖子,可能会对你有所帮助
仅适用于mysqlnd
关于启用
mysqlnd
的注意事项:fetch\u all
比fetch\u array()消耗更多内存,并有其他有害的副作用,因此与其修复fetch\u all
,不如使用fetch\u array
或fetch\u assoc
PHP文档中的详细信息:
仅适用于mysqlnd
因为mysqli_fetch_all()以数组的形式在单个数组中返回所有行
步骤中,它可能会比一些类似的函数(如
mysqli_fetch_array(),它一次只从
结果集。此外,如果需要迭代结果集,可以
将需要一个将进一步影响性能的循环构造。
出于这些原因,mysqli_fetch_all()应该只在那些
获取的结果集将被发送到另一层的情况
用于处理
如果你真的想使用它,你必须用本机驱动器(mysqlnd)安装mySQL
安装示例:
./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
在Ubuntu上,你只需要
sudo apt-get install php5-mysqlnd
当你说它在不同的平台上“工作”时——你是说PHP和MySql的两个独立安装吗?或者你指的是浏览器?请检查我的答案。Ubuntu用户只需执行以下操作:
sudo apt get install php5 mysqlnd
@Ibrahim、@Pacerier,您使用的是什么操作系统?@ibrahimazharmar,Win server 2003。尝试启用mysqlnd扩展,请点击此处的链接寻求帮助,但问题的答案在哪里?这必须是一条评论