PHP PDO不更新表并且不会产生错误

时间:2012-08-30 05:33:20

标签: php mysql pdo sql-update prepared-statement

我正在尝试使用PDO预处理语句更新我的一个表中的单个元素,并且由于某种原因它无法正常工作。我正在使用try-and-catch,我没有从系统中收到任何错误。我也回应了我的两个绑定参数,它们都在系统中注册,所以我不知道它为什么没有经过。我在另一个脚本中使用了与此非常类似的查询,一切都很好。

if($_POST['check_request'] == "Yes"){
    $check_amnt = $_POST['check_amnt'];
    try {
        $STH = $DBH->prepare('UPDATE accounts SET check = :check_amnt WHERE accnt = :user');
        $STH->bindParam(':check_amnt', $check_amnt);
        $STH->bindParam(':user', $ulog);
        $STH->execute();
    }
    catch(PDOException $e) {  
        echo "Check Input Error: " .$e->getMessage(). "</br>";
    }
}

1 个答案:

答案 0 :(得分:3)

您是否为PDO设置了例外模式:

$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

更新 check是mysql保留字,你需要逃避它。

$STH = $DBH->prepare('UPDATE accounts SET `check` = :check_amnt WHERE accnt = :user');