2

PDO 準備済みステートメントを使用して、テーブルの 1 つで単一の要素を更新しようとしていますが、何らかの理由で機能していません。トライアンドキャッチを使用していますが、システムからエラーが発生していません。また、バインドされたパラメーターの両方をエコーし​​ましたが、両方ともシステムに登録されているため、通過しない理由がわかりません。これと非常によく似たクエリを別のスクリプトで使用しましたが、すべて問題ありませんでした。

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>";
    }
}
4

1 に答える 1

3

次の例外モードを設定しましたかPDO:

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

更新: check mysql の予約語です。エスケープする必要があります。

$STH = $DBH->prepare('UPDATE accounts SET `check` = :check_amnt WHERE accnt = :user');
于 2012-08-30T05:37:10.410 に答える