もっと良い方法があります
コメントで、CodeIgniterを使用していると述べています。非常に複雑なものを作成しているのでない限り、 where_in
組み込み。
それでもうまくいかない場合は、古き良き escape
。
さて、あなたはほとんどの人があなたがアイテムを引用する必要があると言ってあなたにこれを与えていると言っています:
function createInClause($arr)
{
return '\'' . implode( '\', \'', $arr ) . '\'';
}
しかし、疑わしい入力の可能性がある場合は、それだけでは十分ではありません( '); DROP TABLE STUDENTS; --
。これを防ぐには、 SQLインジェクション:
を確認する必要があります。
function createInClause($arr)
{
$tmp = array();
foreach($arr as $item)
{
// this line makes sure you don't risk a sql injection attack
// $connection is your current connection
$tmp[] = mysqli_escape_string($connection, $item);
}
return '\'' . implode( '\', \'', $tmp ) . '\'';
}