mysql — удаление нескольких записей в базе данных с помощью флажка php pdo

Я показываю список в моем проекте, данные из базы данных. Я использую php pdo для получения данных. Теперь я хочу иметь функцию удаления нескольких записей, используя флажок, который я делаю. этот учебник я делаю ответ Джона, но я получаю сообщение об ошибке

Warning: PDOStatement::execute() expects parameter 1 to be array, string given in линия $stmt->execute($id);

это весь код

function ImageGalleryDelete(){
global $dbh;
if(!empty($_POST['checkbox'])){
$bigimage = $_POST['checkbox'];
$stmt = $dbh->prepare("DELETE FROM imagegallery WHERE id = ?");
foreach ($bigimage as $id)
$stmt->execute($id);

}else{
echo "<script type='text/javascript'>alert('big image is empty');
window.location='dashboard.php';
</script>";
exit;
}
}

почему я получаю эту ошибку? Любая помощь будет оценена ..

0

Решение

Подсказка уже указана в сообщении об ошибке, передайте массив в правильном формате:

$bigimage = $_POST['checkbox'];
$stmt = $dbh->prepare("DELETE FROM imagegallery WHERE id = :id");
//   ^ named placeholder
foreach ($bigimage as $id) {
$stmt->execute(array(':id' => $id));
// ^ put an key value pair array inside with the designated named placeholder
// along with the value
}
2

Другие решения

То, как я обычно пишу это:

$stmt = $dbh->prepare("DELETE FROM imagegallery WHERE id = :id");
foreach ($bigimage as $id) {
$stmt->execute(array(":id" => $id));
}
0

По вопросам рекламы [email protected]