【问题标题】:How to detect MySQLi initialization error如何检测 MySQLi 初始化错误
【发布时间】:2016-04-02 07:54:30
【问题描述】:

在我的网站中,我正在使用从配置文件中读取的值初始化数据库连接,如下所示:

$this->mysqli = new mysqli($databaseInfo->MySQL_Host, $databaseInfo->MySQL_User, $databaseInfo->MySQL_Pass, $databaseInfo->MySQL_Db);

(作为记录,正在从文件中正确读取值,当一切正常时,数据库连接工作正常)

那请问在创建MySQLi对象时是否出错:

if (($this->mysqli!=null)&&($this->mysqli->errno == 0)) {

如果不是,那么我想设置一个错误变量并稍后在代码中处理它...我希望此检查仅在没有问题发生时通过...我认为 "errno" 变量提供足够的检查...

但显然不是,因为不管有什么错误,我在配置文件中产生,代码仍然跳转到“一切都很好”分支......显然 PHP 产生了很多警告,最后它崩溃了一些与事实数据库没有按预期工作

所以我的问题是 - 如何正确设置此数据库连接初始检查以避免这种情况?

【问题讨论】:

  • 相信你可以查看mysqli的connect_error属性。或者您可以捕获异常并适当处理。
  • 谢谢,伙计...检查 connect_error == NULL 是否效果更好

标签: php oop mysqli


【解决方案1】:

如果使用 PHP OOP

  if ($mysqli->connect_error) {
  die('Connect Error: ' . $mysqli->connect_error);
  }
  ?>

如果使用程序风格的 PHP

 if (!$link) {
  die('Connect Error: ' . mysqli_connect_error());
  }
  ?>

【讨论】:

    【解决方案2】:

    从 PHP 手册中,试试这个:

    if (!$mysqli->error) {
       printf("Errormessage: %s\n", $mysqli->error);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-06
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 2017-04-05
      相关资源
      最近更新 更多