修复 PHP 错误更新 PHP 和 Mysql 后为 foreach() 提供的参数无效

修复 PHP 错误更新 PHP 和 Mysql 后为 foreach() 提供的参数无效

我已在 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

相关内容