无法使用数组中的where子句选择数据

时间:2016-01-16 02:45:15

标签: php mysql arrays codeigniter

我有一个数组$ 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. 

也许有人可以给我一个解决方案

2 个答案:

答案 0 :(得分:3)

由于您使用的是CodeIgniter,因此您可以尝试使用where_in功能代替implodewherewhere_in方法会为您执行此操作。

$this->db->select(*)
->from('tabel_data')
->where_in('DeptID', $DeptID)
->group_by('DeptID', 'ASC')
->get(''):

答案 1 :(得分:0)

您的$DeptID是一个数组,当作为字符串转换为Array时。你需要破坏它:

$DeptID = '(' . implode(',', $DeptID) . ')';

将它放入查询之前。