Es gibt einen besseren Weg
Sie erwähnen in den Kommentaren, dass Sie CodeIgniter verwenden. Sofern Sie nicht etwas außerordentlich Kompliziertes machen, gibt es keinen praktischen Grund, warum Sie Ihre eigenen hausgemachten Abfragen erstellen sollten, wenn Sie where_in
eingebaut.
Und wenn das nicht funktioniert, gibt es den guten alten escape
.
OK, die meisten Leute sagen, dass Sie die Artikel zitieren müssen, und geben Ihnen Folgendes:
function createInClause($arr)
{
return '\'' . implode( '\', \'', $arr ) . '\'';
}
aber das reicht wirklich nicht aus, wenn Sie die Möglichkeit zu fragwürdigen Eingaben haben (wie etwa '); DROP TABLE STUDENTS; --
. Um sich davor zu schützen, müssen Sie sicherstellen, dass Sie nach SQL-Einschleusung:
suchen
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 ) . '\'';
}