我有一个数组$ DeptID:array(5) { [0]=> string(1) "2" [1]=> string(1) "8" [2]=> string(2) "11" [3]=> string(2) "15" [4]=> string(2) "17" }
然后,我想从MySQL数据库中选择获取数据中DeptID的数据。我的问题:
$DeptdID = implode(',', $DeptID);
$this->db->select(*)
->from('tabel_data')
->where('DeptID IN ('.$DeptID.')')
->group_by('DeptID', 'ASC')
->get(''):
但是会发生错误。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near (Array) GROUP BY `DeptID` at line 6.
也许有人可以给我一个解决方案
答案 0 :(得分:3)
由于您使用的是CodeIgniter,因此您可以尝试使用where_in
功能代替implode
和where
。 where_in
方法会为您执行此操作。
$this->db->select(*)
->from('tabel_data')
->where_in('DeptID', $DeptID)
->group_by('DeptID', 'ASC')
->get(''):
答案 1 :(得分:0)
您的$DeptID
是一个数组,当作为字符串转换为Array
时。你需要破坏它:
$DeptID = '(' . implode(',', $DeptID) . ')';
将它放入查询之前。