Ada cara yang lebih baik
Anda menyebutkan di komentar bahwa Anda menggunakan CodeIgniter. Kecuali Anda membuat sesuatu yang luar biasa rumit, tidak ada alasan praktis Anda harus membuat kueri buatan sendiri ketika Anda memiliki where_in
sudah terpasang.
Dan jika itu tidak berhasil, maka ada melarikan diri
.
Oke, jadi, kebanyakan orang mengatakan bahwa Anda perlu mengutip item dan memberi Anda ini:
function createInClause($arr)
{
return '\'' . implode( '\', \'', $arr ) . '\'';
}
tetapi itu tidak cukup jika Anda memiliki kemungkinan untuk masukan yang meragukan (seperti '); MAHASISWA DROP TABLE; --
. Untuk melindunginya, Anda perlu memastikan bahwa Anda memeriksa injeksi 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 ) . '\'';
}