CodeIgniter没有返回与查询

时间:2017-02-11 21:48:04

标签: php sql codeigniter

我正在运行查询,从2个不同的表中选择数据:

$this->db->select('a.any_id, a.name');
$this->db->from('table1 a, table2 b');
$this->db->where('a.any_id = b.any_id');
$this->db->where('b.other_id = "$myId"');

如果在PHPmyAdmin中运行此查询会返回一些结果,但是当我在CodeIgniter中运行此代码时,它会返回一个空数组。

任何提示?这让我发疯了。

3 个答案:

答案 0 :(得分:0)

我认为,因为您正在尝试加入两个表,并且您没有使用codeigniter $this->db->join()向下滚动到用户指南,您会看到加入()https://www.codeigniter.com/user_guide/database/query_builder.html

public function example($myID) {
   $this->db->select('a.any_id, a.name');
   $this->db->from('table1 a', 'LEFT');
  // $this->db->from('table1 a');
   $this->db->join('table2 b', 'b.any_id = a.any_id', 'LEFT');
   $this->db->where('a.any_id', 'b.any_id');
   $this->db->where('b.other_id', $myId);
   $query = $this->db->get();

   return $query->result();
}

然后vardump它。

答案 1 :(得分:0)

大家好,感谢您的回复。

它与使用join子句无关。

我刚刚改变了

$this->db->where('b.other_id = "$myId"');

$this->db->where('b.other_id', $myId);

并且工作得很好。不确定原因,因为第一行非常适合简单查询。

答案 2 :(得分:0)

试试这个

        $this->db->select('a.any_id.*,table2.name');
        $this->db->from('table1 a'); 
        $this->db->join('tabl2 b', 'a.id=b.id', 'left');
        $this->db->where('a.id',$id);      
        $query = $this->db->get();
        return $query->result();