【问题标题】:Delete SQL using Prepared Statement使用 Prepared Statement 删除 SQL
【发布时间】:2014-02-16 06:52:07
【问题描述】:

为什么下面的引用块不起作用?

$uId=$_POST['uId'];
$cId=$_POST['cId'];
$query = "DELETE FROM pa65p_csBlog_postComment WHERE userId = :uId AND id = :cId";
$delete = $db -> prepare($query);
$delete -> bindParam(':uId', $uId, PDO::PARAM_INT);
$delete -> bindParam(':cId', $cId, PDO::PARAM_INT);

if($result=$delete->execute()){
    echo 'success';
}

这是一个使用 $.post 的 ajax 请求。我不断从该脚本中收到内部服务器错误 500。我已经尝试使用普通的 SQL 请求,并且我能够让脚本工作,所以毫无疑问我的 $_POST 值是正确的。

【问题讨论】:

  • 检查您的 PHP 日志是否有错误。
  • 什么是$statement
  • 对不起。重新编辑了语句,但仍然不起作用。尝试检查错误日志,但没有显示。不幸的是-^-

标签: javascript php jquery sql .post


【解决方案1】:
if($delete=$statement->execute()){
    echo 'success';
}

$statement 是什么?我想这一定是$delete->execute()。考虑使用try catch 进行错误处理。 example

【讨论】:

    【解决方案2】:

    if 块包含 $statement 而不是 $delete。改变它,它应该可以工作

        $uId=$_POST['uId'];
        $cId=$_POST['cId'];
        $query = "DELETE FROM pa65p_csBlog_postComment WHERE userId = :uId AND id = :cId";
        $delete = $db -> prepare($query);
        $delete -> bindParam(':uId', $uId, PDO::PARAM_INT);
        $delete -> bindParam(':cId', $cId, PDO::PARAM_INT);
    
        if($result=$delete->execute()){
            echo 'success';
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多