【问题标题】:Delete an array not working with PDO SQL?删除不适用于 PDO SQL 的数组?
【发布时间】:2020-08-26 01:32:43
【问题描述】:

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

考虑到数组可能包含多个值: $result = 数组 ( [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 是数组,给定字符串

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

【问题讨论】:

  • $result 到底是什么?你在哪里赋值? $result = Array ( [3] => 4_Couture )不是有效的 PHP 代码
  • 当前答案$stmt_delete->execute(array($r)); 的替代方法或使用三元和is_array

标签: php sql pdo sql-delete


【解决方案1】:

假设$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();
}

【讨论】:

  • 老兄,你刚刚成功了!确实数组不是多维的!这就是为什么我的代码没有软木塞!多亏了你,我今晚学到了很多东西!
猜你喜欢
  • 2015-12-19
  • 2012-11-24
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 2013-11-16
  • 1970-01-01
  • 2013-01-02
相关资源
最近更新 更多