1

好的,这显然不是完整的代码,但这是错误所在的代码。

$this->db->select('post_likes');
$this->db->from('user_dash_posts');
$this->db->where('post_idn', $idn);
$this->db->where('isactive', '0');
if($this->db->count_all_results() > 0)
{
    $dataDB = $this->db->get();

get()关于我在这里展示的最后一行的声明,我得到“没有使用表” 。我对整个 CI 数据库类/帮助器还是有点陌生​​,因为我以前更喜欢手写完整的查询器。但我正在尝试在 ORM 层上自学并更好地熟悉它们。然而,这对我的问题来说是一个无声的点。我试图弄清楚我在这个陈述中做错了什么,解决方法是什么,如果可能的话,解释我是如何做错的,这样我就可以理解而不是再犯了。

4

2 回答 2

1

根据文档

通常,当一个 Active Record 调用完成时,所有存储的信息都会为下一次调用重置。

如果要重用查询,请使用同一页面底部的缓存方法。完成后不要忘记刷新缓存:

$this->db->start_cache();
$this->db->select('post_likes');
$this->db->from('user_dash_posts');
$this->db->where('post_idn', $idn);
$this->db->where('isactive', '0');
$this->db->stop_cache();

if($this->db->count_all_results() > 0) {
     $dataDB = $this->db->get();
}
$this->db->flush_cache();

编辑:

另一个使用单个查询而不是两个查询的选项:

$this->db->select('post_likes');
$this->db->from('user_dash_posts');
$this->db->where('post_idn', $idn);
$this->db->where('isactive', '0');
$query = $this->db->get();

if($query->num_rows() > 0) {
     $dataDB = $query->result();
}
于 2012-10-06T21:18:54.497 回答
0

您可以简单地删除$this->db->from('user_dash_posts');行并将您的表名添加到get()函数中,如下所示: $dataDB = $this->db->get('user_dash_posts');

于 2012-10-07T03:30:05.013 回答