我刚开始使用CodeIgniter 2,可能我已经监督了一些明显的东西,但我无法弄清楚。
我的MySQL数据库有一个名为Documents的表,名为online_since。
函数_getMaxOnlineSince()应获取最大的online_since值并将其作为字符串返回。
在应用程序/模型/ browse_model.php:
private function _getMaxOnlineSince() {
$this->db->select_max('online_since');
$oQuery = $this->db->get('documents');
return $oQuery->num_rows() > 0 ? $oQuery->row()->online_since : false;
}
而且我得到了浏览器的错误信息:
Fatal error: Uncaught Error: Call to a member function num_rows() on boolean
因为$ oQuery的是假的:的var_dump($ oQuery)回报布尔(假)
的var_dump($这 - > DB-> select_max( 'online_since'))返回对象(CI_DB_mysqli_driver)#14(73){...}
Codeigniter 2应用程序在使用PHP5.3的旧服务器上工作,但在更新到PHP 7之后,它在这一点上崩溃。
为什么$ this-> db-> get('documents')返回false,我该如何解决?
我能设法得到与SQL查询此功能工作:
private function _getMaxOnlineSince() {
$oQuery = "select max(online_since) from documents";
$sMaxOnlineSinceDate = $this->db->query($oQuery);
return $sMaxOnlineSinceDate->num_rows() > 0 ? $sMaxOnlineSinceDate->row()->online_since : false;
}
但还有更多的地方,我用
$this->db->get('documents')
我想在我的情况下,CI有麻烦来评价这声明由于某种原因。我会进一步调试。
'print_r($ oQuery-> result())'返回什么? – Vickel
致命错误:未捕获错误:调用成员函数结果()布尔型 – StandardNerd
表中是否为空?表中的 – Vickel