C'è un modo migliore
Dici nei commenti che stai usando CodeIgniter. A meno che tu non stia realizzando qualcosa di straordinariamente complicato, non c'è alcun motivo pratico per cui dovresti creare le tue query fatte in casa quando hai where_in
integrato.
E se non funziona, allora c'è un buon vecchio escape
.
OK, quindi, la maggior parte delle persone dice che devi citare gli articoli e ti stanno dando questo:
function createInClause($arr)
{
return '\'' . implode( '\', \'', $arr ) . '\'';
}
ma questo non è davvero sufficiente se hai la possibilità di input discutibili (come '); DROP TABLE STUDENTS; --
. Per proteggerti, devi assicurarti di controllare SQL injection:
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 ) . '\'';
}