Codeigniter SELECT无法处理此查询

时间:2014-09-04 17:00:15

标签: codeigniter

我在phpMyAdmin中测试了以下SQL,并确认它工作正常。但是,当我尝试在CodeIgniter中使用它时,我收到错误消息。

$this->db->order_by("vch_name", "asc");
$this->db->select('SELECT *, (SELECT COUNT(*) FROM tbl_contact WHERE fk_client_id = tbl_pro_client_id) AS count_contacts FROM tbl_pro_client');
    $query = $this->db->get('tbl_pro_client', $num, $offset);
    return $query;

这对于CI选择来说是否太复杂了,还是有办法绕过它?一个更明显的答案当然是我可能做了一些非常愚蠢的事情。建议,指针等非常感谢。

2 个答案:

答案 0 :(得分:1)

您应该阅读有关数据库查询操作的更多信息click here

limit参数看起来有误,CI提供limit()函数,请尝试此代码 在select()函数中,不需要 FROM table_name ,并使用FALSE跳过(`)

$this->db->order_by("vch_name", "asc");
$this->db->select('SELECT *, (SELECT COUNT(*) FROM tbl_contact WHERE fk_client_id = tbl_pro_client_id) AS count_contacts', false);
$this->db->limit($num, $offset); 
$query = $this->db->get('tbl_pro_client');
return $query;

答案 1 :(得分:1)

只应为select()电话提供您要选择的实际字段(即SELECT关键字,FROM ...不应该存在。喜欢的东西;

$this->db->order_by("vch_name", "asc");
$this->db->select('*, (SELECT COUNT(*) FROM tbl_contact WHERE fk_client_id=tbl_pro_client_id) AS count_contacts', false);
$query = $this->db->get('tbl_pro_client', $num, $offset);
return $query;