【问题标题】:Why doesn't my code knows there is something wrong PHP PDO [duplicate]为什么我的代码不知道 PHP PDO 有问题 [重复]
【发布时间】:2020-02-14 01:19:52
【问题描述】:

这是我的尝试声明

$query = "DELETEh FROM supers WHERE id = :id";
    try {
      $stmt = $conn->prepare($query);
      $stmt->bindValue(':id', $id);
      $stmt->execute();
      $_SESSION['notification'] = "Hero was deleted sucessfully";
    }

这是剩下的代码

 catch(PDOException $e) {
$_SESSION['notification'] = "There was an error deleting hero: " . $e->getMessage();


 }
  header("Location: notification.php");
  exit;

当它运行时,它告诉我英雄被成功删除,尽管它没有成功,因为在 DELETE 之后有一个额外的“h”。谁能解释一下为什么这没有进入 catch 块?

【问题讨论】:

  • 你确定你启用了PDO::ERRMODE_EXCEPTION

标签: php pdo try-catch


【解决方案1】:

你很可能没有这样做

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

当您打开 PDO 连接时。默认值为PDO::ERRMODE_SILENT$conn->prepare() 将返回FALSE,您需要从$conn->errorCode()$conn->errorInfo() 获取原因。

【讨论】:

    猜你喜欢
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多