首页 > 解决方案 > 如何检查更新 PDO 是否成功运行?

问题描述

我有一个 PDO 脚本,用于更新表中的一行。这是我的脚本:

    include 'dbconfig.php';

$id = $_POST['id'];
$data = $_POST['data'];

try {
    $options = [
    \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
    \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
    \PDO::ATTR_EMULATE_PREPARES => false,
    ];
    $pdo = new PDO("mysql:charset=utf8mb4;host=$servername;dbname=$dbname", $username, $password);

    //$data = array_filter($data, 'strlen');

    $setStr = "";

    $values = array();

    foreach($data as $field => $value) {
        $setStr .= "$field=:$field,";
        $values[$field] = $value === "" ? null : $value;
    }

    $setStr = rtrim($setStr, ",");


    $values['id'] = $id;
    $stmt = $pdo->prepare("UPDATE products SET $setStr WHERE id = :id");
    $stmt->execute($values);


    echo json_encode(array('response'=>'success','message'=>'Product ID # '.$id." successfully updated."));

}catch(PDOException $e){
    
    echo json_encode(array('response'=>'danger','message'=>$e->getMessage()));
}
    $conn = null;

目前,当它运行时,如果我尝试在 int 字段中输入一个字符或导致更新失败的内容,它仍然返回成功消息,如果它遇到任何更新它抛出异常的错误,我该如何做到这一点?

标签: phppdo

解决方案


推荐阅读