当我使用以上$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\'')
如何解决这个问题?
答案 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)');