我已在 CentOs 6.5 vps 上将 PHP 从 5.3 版本更新到 PHP 5.6.21(mod_fcgid)。
vps 拥有 4 个 Prestashop,几乎可以运行,但购物车无法按预期工作。
php 错误日志包含此错误:
mod_fcgid: stderr: PHP Warning: Invalid argument supplied for foreach() in Cart.php
所有托管站点均发生故障。
我检查了 Prestashop 中名为 Cart.php 的文件,问题出在 foreach 行。
$result = Db::getInstance()->ExecuteS('Large Query')
$productsIds = array();
$paIds = array();
foreach ($result as $row)
...
我在这里没有看到任何错误,所以我在寻找错误所在。我猜想 PHP 更新后的错误与新的类型限制或某些配置错误的设置有关。
需要帮助,谢谢。
答案1
解决了。
该问题与从 Msyql 5.1 更新时的数据库 Mysql 5.7 有关。
错误
mod_fcgid: stderr: PHP Warning: Invalid argument supplied for foreach() in...
是正确的。prestashop 执行的查询返回了任何内容。需要更改
my.cnf 中的 SQL 模式
sql-mode=TRADITIONAL