首页 > 解决方案 > 删除不适用于 PDO SQL 的数组?

问题描述

我试图根据 id 删除 mysql 中的一行已经 3 个小时了……看起来很简单吧?

考虑到数组可能包含多个值: $result = Array ( [3] => 4_Couture )

Array ( [3] => 4_Couture )
$sql_delete = "DELETE FROM users_resumes WHERE id_training_key = ? ";
$stmt_delete= $pdo->prepare($sql_delete);
foreach($result as $r) {
            $stmt_delete->execute($r);
    }

这似乎是对的,不是吗?错误:PDOStatement::execute() 期望参数 1 是数组,给定字符串

任何,任何,任何线索都非常受欢迎!非常感谢法国!

标签: phpsqlpdosql-delete

解决方案


假设$result是一个一维数组,如

$result = [ 3 => '4_Couture' ];

这意味着您正在尝试使用需要数组$stmt->execute()的单个字符串值进行调用。

我建议你bindParam改用

$stmt_delete = $pdo->prepare("DELETE FROM users_resumes WHERE id_training_key = ?");
$stmt_delete->bindParam(1, $r);
foreach ($result as $r) {
  $stmt_delete->execute();
}

推荐阅读