在codeigniter中获取不正确的查询

时间:2012-12-21 11:54:34

标签: php mysql codeigniter

当我使用以上$id="'10','11',12'"值从mysql表中获取记录时,我将变量值从$id从视图传递到模型到控制器:

$query=$this->db->query('select * from userdetails where Id IN ($ids)')

我没有得到结果,但它将查询打印为:

SELECT * FROM (`userdetails`) WHERE `Id` IN ('\'10\',\'11\',\'12\'')

如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

确定试试这个:

$this->db->escape($id);
$query=$this->db->query("select * from userdetails where Id IN ($ids)");

在传递查询之前使用stripslashes($id);。或者mysql_real_escape_string()也应该有用 这样:

$ids = stripslashes($ids);
$query=$this->db->query("select * from userdetails where Id IN ($ids)");

或者你可以用这种方式用逗号分隔$ ids =“11,12,13”; 它应该工作。

答案 1 :(得分:2)

将数据发送到数组......

$id_array = array('10','11','12');

型号:

//implode converts your array into a string without quotes
$comma_separated = implode(",",$id_array);
$query=$this->db->query('select * from userdetails where Id IN ($comma_separated)');