4

$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\'')

如何解决这个问题呢?

4

2 回答 2

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"; 它应该可以工作。

于 2012-12-21T11:58:28.503 回答
2

将 id 发送到数组中...

$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)');
于 2012-12-21T12:03:51.500 回答