首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >致命错误:调用未定义的方法mysqli_result::fetch_all()

致命错误:调用未定义的方法mysqli_result::fetch_all()
EN

Stack Overflow用户
提问于 2012-07-26 15:37:24
回答 3查看 55.3K关注 0票数 22

我在Ubuntu 10.04中遇到了PHP的问题。当我尝试使用mysqli_result::fetch_all时,出现以下错误:

对未定义的方法mysqli_result::fetch_all()的调用

但是,它可以在Windows XP中工作。

代码:

代码语言:javascript
复制
$result = $this->dbh->query('SELECT [...] ');
return $result->fetch_all(MYSQLI_ASSOC);

我不想将fetch_assoc与循环一起使用,因为我将结果发送到另一个层进行处理。

我使用的是PHP 5.4.4。而使用php mysql| grep mysql的mysqlnd模块则没有出现。如何安装?这会是问题所在吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-26 15:47:41

mysqli_result::fetch_all()需要MySQL本机驱动程序(mysqlnd)。

你可能会错过它。

看看这些帖子,可能会对你有所帮助。

mysqli fetch_all() not a valid function?

票数 39
EN

Stack Overflow用户

发布于 2013-01-14 13:02:11

fetch_all比fetch_array()消耗更多的内存,并且有其他有害的副作用,所以与其修复fetch_all不如使用 fetch_array and

来自PHP文档的详细信息:

仅适用于mysqlnd。

由于mysqli_fetch_all()在单个步骤中以数组的形式返回所有行,因此它可能比某些类似的函数(如mysqli_fetch_array() )消耗更多的内存,后者一次只返回结果集中的一行。此外,如果需要迭代结果集,则需要进一步影响性能的循环结构。由于这些原因,只有在获取的结果集将被发送到另一层进行处理的情况下,才应该使用mysqli_fetch_all()。

如果你真的想使用它,你必须安装带有本机驱动器的mySQL (mysqlnd)示例安装:

代码语言:javascript
复制
./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \

在Ubuntu上,你可以这样做

代码语言:javascript
复制
sudo apt-get install php5-mysqlnd
票数 4
EN

Stack Overflow用户

发布于 2012-07-26 15:50:44

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11664536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档