0

I need to delete all rows where id is in a comma delimited string.

$ids = '1,2,3,4,5'; 
$sql = "delete from images where id in(:aid)";
$st = $db->prepare($sql);
$st->execute([
    ":aid" => $ids
]);

Result - only one row is deleted.

qadenza
  • 8,611
  • 18
  • 61
  • 108

1 Answers1

0

use explode() along with implode()

$st->execute([
    ":aid" => "'".implode("','", explode(",",$ids))."'"
]);

Or use FIND_IN_SET()

$sql = "Delete from images WHERE FIND_IN_SET(`id`, :aid)";
$st = $db->prepare($sql);
$st->execute([
   ":aid" => $ids
]);
Anant Kumar Singh
  • 68,309
  • 10
  • 50
  • 94