【问题标题】:Codeigniter Query Builder Object Error After Upgrade升级后 Codeigniter 查询生成器对象错误
【发布时间】:2018-01-02 14:24:34
【问题描述】:

潜伏已久,第一次发问。

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

长版:

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

本地环境(工作正常):XAMPP 7.0.3 / PHP 7.0.21 / MariaDB 10.1.25

生产环境(返回错误):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 升级
  • 将 Codeigniter 从 3.1.3 升级到 3.1.5
  • 做了一堆谷歌搜索

我被难住了。感谢您提供任何帮助或见解。

【问题讨论】:

    标签: php mysql codeigniter query-builder


    【解决方案1】:

    进行了更多挖掘,并能够在 MySQL 中获得更多错误消息。这把我带到了这里:Disable ONLY_FULL_GROUP_BY

    按照步骤操作并能够解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      相关资源
      最近更新 更多