升级后Codeigniter查询生成器对象错误

时间:2017-07-27 03:33:29

标签: php mysql codeigniter query-builder

长时间潜伏,第一次问问。

快速版: 在apt-get升级后,我在LAMP站点上遇到500个错误,我最好追溯到Codeigniter的查询生成器。

长版:

代码库:Codeigniter 3.1.5(作为故障排除的一部分进行了升级)

  

本地环境(正常工作):XAMPP 7.0.3 / PHP 7.0.21 / MariaDB   25年1月10日

     

生产环境(返回错误):PHP 7.0.21 / MySQL Ver 14.14   分发5.7.19

根据页面的不同,我收到500 HTTP错误。日志显示了以下各种版本:

PHP Fatal error:  Call to a member function result() on a non-object in /var/www/application/models/Model.php on line xxx

这些错误中的每一个都指代一段Codeigniter Query Builder代码,类似于:

$query = $this->db->query([some query]);
return $query->result();

$this->db->group_by([some other field]);
$query = $this->db->get();
return $query->result();

我在使用查询构建器时找不到任何一致的模式,但$this->db->group_by()似乎很受欢迎。

每个错误都表明query对象存在问题,但是 - 再次 - 它不一致且令人困惑。

要解决的步骤:

  • 尝试跨环境获取版本奇偶校验
  • 回滚apt-get升级
  • 重新进行apt-get升级
  • 从3.1.3升级到3.1.5
  • 的Codeigniter
  • 做了一堆谷歌搜索

我很难过。任何帮助或见解都表示赞赏。

1 个答案:

答案 0 :(得分:1)

进行了更多挖掘并且能够在MySQL中获得进一步的错误消息。这引导我:Disable ONLY_FULL_GROUP_BY

按照步骤操作,即可解决问题。