安装prestashop提示"PHP message: PHP Fatal error: Call to a member function fetch() on boolean
2016-08-26 00:00
399 查看
这两天闲来无事,就搜搜有没有好的开源电商平台源码学习,在github上面搜了一番,发现prestashop口碑不错,于是乎就下载下来在CentOS7上面试试。
事情一直都很顺利,但是当配置页面到了第四页,数据库测试是连同的,点下一步之后页面就变成空白了。
翻了一下日志,提示:2016/08/25 15:29:15 [error] 9054#0: *52633 FastCGI sent in stderr: "PHP message: PHP Fatal error: Call to a member function fetch() on boolean in /usr/local/openresty/nginx/html/prestashop/classes/db/DbPDO.php on line 371" while reading response header from upstream, client: 123.98.11.90, server: gm.kimoon.cn, request: "POST /install/index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "gm.kimoon.cn", referrer: "http://gm.kimoon.cn/install/index.php"
这下就尴尬了,完全不知道是什么鬼,因为我不会PHP…
不过这并不碍事,找了DbPDO.php这个文件看,出问题的那一段代码:
出问题的是第九行的:$row = $result->fetch();
虽然我不懂PHP,但是大概意思还是明白,它是执行了上面那个sql语句之后,需要获取它的结果。而日志提示是函数fetch()出现致命错误,但是这个是系统自带函数,怎么可能会出错呢,而且还是返回的布尔值?那可能性应该$result本身就不正确,也就是那个sql语句执行的结果不对!
登录进去mysql,用命令行实验了下:SHOW VARIABLES WHERE Variable_name = 'have_innodb';
果不其然,提示出错了:Table 'performance_schema.session_variables' doesn't exist
这个问题好解决,执行下面两步即可:
事情一直都很顺利,但是当配置页面到了第四页,数据库测试是连同的,点下一步之后页面就变成空白了。
翻了一下日志,提示:2016/08/25 15:29:15 [error] 9054#0: *52633 FastCGI sent in stderr: "PHP message: PHP Fatal error: Call to a member function fetch() on boolean in /usr/local/openresty/nginx/html/prestashop/classes/db/DbPDO.php on line 371" while reading response header from upstream, client: 123.98.11.90, server: gm.kimoon.cn, request: "POST /install/index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "gm.kimoon.cn", referrer: "http://gm.kimoon.cn/install/index.php"
这下就尴尬了,完全不知道是什么鬼,因为我不会PHP…
不过这并不碍事,找了DbPDO.php这个文件看,出问题的那一段代码:
public function getBestEngine() { $value = 'InnoDB'; $sql = 'SHOW VARIABLES WHERE Variable_name = \'have_innodb\''; $result = $this->link->query($sql); if (!$result) { $value = 'MyISAM'; } $row = $result->fetch(); if (!$row || strtolower($row['Value']) != 'yes') { $value = 'MyISAM'; } /* MySQL >= 5.6 */ $sql = 'SHOW ENGINES'; $result = $this->link->query($sql); while ($row = $result->fetch()) { if ($row['Engine'] == 'InnoDB') { if (in_array($row['Support'], array('DEFAULT', 'YES'))) { $value = 'InnoDB'; } break; } } return $value; }
出问题的是第九行的:$row = $result->fetch();
虽然我不懂PHP,但是大概意思还是明白,它是执行了上面那个sql语句之后,需要获取它的结果。而日志提示是函数fetch()出现致命错误,但是这个是系统自带函数,怎么可能会出错呢,而且还是返回的布尔值?那可能性应该$result本身就不正确,也就是那个sql语句执行的结果不对!
登录进去mysql,用命令行实验了下:SHOW VARIABLES WHERE Variable_name = 'have_innodb';
果不其然,提示出错了:Table 'performance_schema.session_variables' doesn't exist
这个问题好解决,执行下面两步即可:
mysql_upgrade -u root -p password --force systemctl restart mysqld
相关文章推荐
- nginx打开网站提示 500错误解决方案 ([error] 1824#100074: *6 FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of 13
- apache,php安装好之后提示Fatal error: Call to undefined function mb_detect_encoding()
- nginx error.log 提示 [error] 887#887: *58 FastCGI sent in stderr: "PHP message: PHP Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50556 Library:50637
- Web_PHP_织梦更新列表页提示Fatal error: Call to a member function GetInnerText() on a non-object in ...
- PHP imagick-3.1.0RC2无法安装,提示fatal error: wand/MagickWand.h: No such file or directory 解决方法
- FastCGI sent in stderr: "PHP message: PHP Fatal error: Call to undefined function __() in
- magento 第四章 出现 "Fatal error:Call to a member function load() on a non-object in \Abstract.php" 问题
- PHP中超时提示Fatal error: Maximum execution time of 30 seconds exceeded的解决方案
- Perl ERROR "Failure to create message queue, No space left on device "
- CentOS5.8上安装PHP软件提示“configure:error:no acceptable cc found in $path”
- 连接数库失败could not find driver Fatal error: Call to a member function prepare() on a non-object in D:\AppServ\www\xsphp_code\brophp\bases\dpdo.class.php
- 关于安装.NET Framework 2.0时偶然碰到的问题(提示"Error 205015. 安装程序集..../System.EnterpriseServices.dll失败,原因是出现了系统错误:拒绝访问。")
- java错误提示:Syntax error on token " ", = expected after this token...
- PHP提示Fatal error: Allowed memory size of 8388608 bytes exhausted的解决办法
- 织梦更新列表页提示Fatal error: Call to a member function GetInnerText() on a non-object 解决方法
- 安装完PHP后启动httpd报错:httpd: Syntax error on line 53 ...
- VM安装失败 提示:“Failed to create the requested registry key Key:installer Error:1021"
- PHP连 Mysql 提示: Fatal error:undefined function mysql_connect()
- 织梦更新列表页提示Fatal error: Call to a member function GetInnerText() on a non-object 解决方法
- IIS7.0 调试ASP程序时候,程序有错误只提示"An error occurred on the server when processing the URL.Please contact the system administrator",看不到详细的提示的解决办法