php - 如何检查更新 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 字段中输入一个字符或导致更新失败的内容,它仍然返回成功消息,如果它遇到任何更新它抛出异常的错误,我该如何做到这一点?
解决方案
推荐阅读
- quickfixj - Quickfixj发起者在互联网断开后重新连接到会话
- html - 如何防止第二列中的文本移动?如图所示
- c - 使用 write() 系统调用生成新行
- uwp - 如果终点为 0,CompositeTransform.TranslateY 不起作用
- java - 替换二维对象数组的元素
- kotlin - 从 Kotlin 代码构建的 jar 库是否仍然具有访问本地 Kotlin 代码等所有功能
- ios - Obj-C - NSPredicate 过滤器键在其标题中包含空格?
- ios - 如何判断我在视图中拖动的位置?
- python - 使字符串成为列表的问题
- c - 如何确保 pthread_cond_wait() 不会错过任何 pthread_cond_signal()?