Il existe un meilleur moyen
Vous mentionnez dans les commentaires que vous utilisez CodeIgniter. À moins que vous ne fassiez quelque chose d'extraordinairement compliqué, il n'y a aucune raison pratique de créer vos propres requêtes maison lorsque vous avez where_in
intégré.
Et si cela ne fonctionne pas, alors il y a du bon vieux escape
.
OK, donc, la plupart des gens disent que vous devez citer les articles et vous donnent ceci :
function createInClause($arr)
{
return '\'' . implode( '\', \'', $arr ) . '\'';
}
mais ce n'est vraiment pas suffisant si vous avez la possibilité d'une entrée douteuse (telle que '); DROP TABLE STUDENTS; --
. Pour vous protéger contre cela, vous devez vous assurer de vérifier Injection 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 ) . '\'';
}