Php CodeIgniter:未定义的属性:stdClass::$date

Php CodeIgniter:未定义的属性:stdClass::$date,php,mysql,codeigniter,date-format,Php,Mysql,Codeigniter,Date Format,当我试图使CodeIgniter模型与数据库正确通信时,我遇到了一个严重的问题 在我找到的答案中,我读到我不应该提出这样的问题: $query2 = $this->db->query("SELECT patient_id FROM visits WHERE date LIKE DATE_FORMAT('$row->date', '%Y-%m-%d') GROUP BY date"); $thi

当我试图使CodeIgniter模型与数据库正确通信时,我遇到了一个严重的问题

在我找到的答案中,我读到我不应该提出这样的问题:

            $query2 = $this->db->query("SELECT patient_id FROM visits
                          WHERE date LIKE DATE_FORMAT('$row->date', '%Y-%m-%d') GROUP BY date");    
$this->db
    ->select('patient_id')
    ->from('visits')
    ->like('date', "DATE_FORMAT($row->date, '%Y-%m-%d')", FALSE); 
 $query = $this->db->get();
但就像这样:

$this->db->select('patient_id');
$this->db->from('visits');
$this->db->like('date', "DATE_FORMAT($row->date, '%Y-%m-%d')"); 
尽管如此,我仍然不知道如何让它工作。我也不确定我是否正确地使用了$this->db->like。

您只需要调用:

$query = $this->db->get();
为了得到结果。此外,您不需要每次$this->db,因此您的查询可能如下所示:

            $query2 = $this->db->query("SELECT patient_id FROM visits
                          WHERE date LIKE DATE_FORMAT('$row->date', '%Y-%m-%d') GROUP BY date");    
$this->db
    ->select('patient_id')
    ->from('visits')
    ->like('date', "DATE_FORMAT($row->date, '%Y-%m-%d')", FALSE); 
 $query = $this->db->get();

你之前的问题是什么?您是否确认存在“日期”行,并且返回了一个对象?您需要在like()调用中将FALSE作为第三个参数传递,否则整个查询表达式将被转义并进行比较,因为我非常感谢您的答案!)这实际上是一个很好的干净的解决方案。而且肯定更容易阅读。有时候你只需要另一个大脑;)再次感谢!