之前本地能用fetch_all,mysqli_fetch_all之类的函数,但是部署到线上服务器上就不能用了,以下是我解决问题的实际情况
首先是各种郁闷,因为我本地的也是php5.6,然后我就去用phpinfo()输出一下,发现线上也有mysqli,但是没有mysqlnd,
但是也比较迷惑,不知道是这个问题。
后面去看了一下apache运行是的错误信息发现了这个
这个问题,我就换成了mysqli_fetch_all,也是类似的错误,这里就不上图了。
我就去看文档 http://php.net/manual/en/mysqli-result.fetch-all.php,看到这个
应该是要装mysqlnd的扩展,centOS上没有安装。去搜索怎么安装,于是看到了这个
http://blog.csdn.net/misakaqunianxiatian/article/details/52079918
按照上面的做了,结果不行,大概是出现了这样的问题
后来我在一个帖子上找到相应的解决问题,不是要安装php-mysqlnd而应该是php56w-mysqlnd。实际上就这样解决了我的问题。
最后总结一下如何解决问题:
首先mysqli 会和 mysqlnd冲突,先移除mysqli.
yum remove php-mysqli
(如果要安装,以我的服务器环境就是 yum install php56w-mysqli)
然后安装mysqlnd
yum isntall php56w-mysqlnd php -m
大功告成!!!
文章至此结束。
原创文章,如有不足,还望海涵
转载请指明出处!!