首页 > 数据库 > mysql教程 > 为什么我的 PDO 异常抛出空值并且不执行?

为什么我的 PDO 异常抛出空值并且不执行?

Susan Sarandon
发布: 2024-10-28 12:06:01
原创
467 人浏览过

Why Are My PDO Exceptions Throwing Null Values and Not Executing?

如何处理 PDO 异常

问题:

在使用 PHP PDO 类时,尝试处理错误会导致报告空值且保持不活动状态的代码。

代码:

<code class="php">$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Exception handling is enabled

$id = 33;
$name = "Mario Bros.";
$url = "http://nintendo.com";
$country = "jp";

try {
    $sql = "UPDATE table_users SET name = :name, url = :url, country = :country WHERE user_id = :user_id";
    $statement = $connection->prepare($sql);
    $statement->bindParam(':user_id', trim($id), PDO::PARAM_INT);
    $statement->bindParam(':name', trim($name), PDO::PARAM_STR);
    $statement->bindParam(':url', trim($url), PDO::PARAM_STR);
    $statement->bindParam(':country', trim($country), PDO::PARAM_STR, 2);
    $status = $statement->execute();
} catch (PDOException $e) {
    echo $e->getMessage();
}</code>
登录后复制

解决方案:

PDO 不会抛出异常自动排除异常。要启用异常处理,必须在尝试执行任何查询之前添加以下行:

<code class="php">$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);</code>
登录后复制

说明:

通过将 PDO 错误模式设置为 ERRMODE_EXCEPTION,所有与 PDO 相关的错误都将作为异常抛出。然后可以使用 try/catch 块来处理这些异常并向用户或日志系统提供有意义的错误消息。

以上是为什么我的 PDO 异常抛出空值并且不执行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板