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

OKこれを試してください:

$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 に答える