我在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选择来说是否太复杂了,还是有办法绕过它?一个更明显的答案当然是我可能做了一些非常愚蠢的事情。建议,指针等非常感谢。
答案 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;