【问题标题】:PHP necessity to check for DB connection errorsPHP 检查数据库连接错误的必要性
【发布时间】:2014-09-04 12:39:18
【问题描述】:

由于我试图尽可能提供格式良好的代码,所以我提出了这个问题。

一般来说,我会为我创建的每个准备好的语句检查数据库连接错误,例如:

if ($stmt = $mysqli->prepare("...random SQL code here...") {
    //bind_param, executes, store_results, etc. here
} else {$err = "Database error";}

但我从不检查执行时的数据库错误。我应该这样做吗?

它是否会更多地损害大型项目的性能,因为它可以解决更好的调试问题,并有更多机会抛出有用的错误代码?还是我应该完全忘记这些检查而只依赖 mysql/php/apache 日志?

感谢您帮助我。

【问题讨论】:

    标签: php mysql optimization error-handling


    【解决方案1】:

    是的,您应该测试连接的有效性,不,它不会影响脚本的性能。这些连接命令的 php 文档几乎总是向您展示如何操作。

    看那里

    http://php.net/manual/en/mysqli.construct.php

    $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
    
    /*
     * This is the "official" OO way to do it,
     * BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
     */
    if ($mysqli->connect_error) {
        die('Connect Error (' . $mysqli->connect_errno . ') '
            .$mysqli->connect_error);
    }
    

    【讨论】:

    • 好吧,我想到了更多的东西,比如:我做了一些查询,但我的数据库突然抛出了一些错误或不再工作。那么如果我之前做了几千行 $mysqli->connect_error { ... } 或 ?
    • 如果在连接后和查询期间出现问题,您的执行调用将不会返回有效结果。你已经检查过了。除此之外,完整运行一个 php 应用程序通常需要几毫秒。因此,连接可能始终是您第一次发现死数据库问题的通知。
    猜你喜欢
    • 1970-01-01
    • 2014-06-22
    • 2015-04-23
    • 2016-06-11
    • 2020-12-12
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多