使用Prepared Statement删除SQL

时间:2014-02-16 06:52:07

标签: javascript php jquery sql .post

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

$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值是正确的。

2 个答案:

答案 0 :(得分:0)

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

这里是什么$statement?我认为这必须是$delete->execute()。考虑使用try catch进行错误处理。 example

答案 1 :(得分:-1)

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';
    }