【问题标题】:How to die website if database connection cannot be established如果无法建立数据库连接如何死网站
【发布时间】:2013-07-19 16:59:23
【问题描述】:

我有一个带有数据库连接的网站。连接对网站来说非常重要,所以如果网站无法建立数据库连接,我需要“死”这个网站。 “或死”不是一个好主意,所以我尝试了这个:

$host='localhost';
$un='root';
$pw='mypass';
$dbname='home';

try {
    $db = new mysqli($host, $un, $pw, $dbname);
    if ($db->connect_errno) {
        throw new Exception('Fail: '.$db->connect_errno);
    }
} 
    catch(Exception $e) 
{
    die($e->getMessage());
}

然后,用户可以看到错误消息:

mysqli::mysqli() [mysqli.mysqli]: php_network_getaddresses: getaddrinfo failed: no such host is known

Fail: 2002

检查连接是否正常的最佳方法是什么,如果不正常:显示错误消息使网站死亡?

感谢您的帮助!

【问题讨论】:

  • 只需记录错误消息和echo 任何你想显示的内容。
  • 不行,定义对象时出错
  • @Jordy 可以连接 127.0.0.1 吗?
  • 是的,它可以连接,但我将主机更改为“asdfasdf”,以检查如果出现错误会发生什么。

标签: php mysqli try-catch die


【解决方案1】:

用自定义消息记录错误和die

error_log($e->getMessage());
die('custom message');

【讨论】:

  • 看我编辑的帖子,总是有类似mysqli::mysqli() [mysqli.mysqli]: php_network_getaddresses: getaddrinfo failed:的错误信息
【解决方案2】:
catch(Exception $e) 
{
    die($e->getMessage());
}

将打印一条消息并终止脚本

【讨论】:

  • 你的意思是,它没有被异常处理?你能告诉,错误是什么。也许,我们应该为它编写第二个异常处理程序?
猜你喜欢
  • 2016-04-23
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多