我正在尝试使用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>";
}
}
答案 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');