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
  • 9,025
  • 18
  • 73
  • 126

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
]);
Alive to die - Anant
  • 70,531
  • 10
  • 51
  • 98