【问题标题】:In PHP it takes a lot of time to catch Exceptions在 PHP 中,捕获异常需要很长时间
【发布时间】:2013-11-14 06:47:34
【问题描述】:

我在这里给你一些有趣的东西,因为我研究了所有的 stackoverflow,但没有人问过类似的问题! 让我们来看看描述:

我正在尝试使用 php 将一个简单的 mysql 数据库连接到我的服务器。 从现在开始,我可以说 PDO 和 mysql_connect 方法都存在问题。 现在我给你解释一下:

在典型的“TRY-CATCH”块中,我想测试一些异常的错误消息。所以我做了如下的事情:

try {
$db = new PDO("mysql:host=localhost;dbname=shirts4mike;","root","ffredda");
$db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db -> exec("SET NAMES 'utf8'");
} catch (Exception $e) {
echo "Could not connect to the database.";
exit;
}

现在,为了测试错误信息,我尝试将主机更改为:

host=Wronghost;

并刷新了在本地服务器 (apache2) 上运行的页面。

我们来解决这个问题!在我的浏览器捕获异常并加载错误消息之前大约需要两分钟。

我快疯了!我不知道这取决于什么!我认为这是服务器在放弃并抛出异常之前多次尝试连接到数据库!但是如果这是问题,如何限制这个尝试次数?如果这不是问题,那么有人知道在哪里寻找和解决它?谁负责? mysql?阿帕奇? PHP 代码(我对此表示怀疑)?

我非常感谢任何帮助。真的。 谢谢你,希望很快能收到人的来信!

--法布里齐奥

【问题讨论】:

  • 问题标题明显是对测试结果的误解。除了执行测试,正确解释结果也很重要
  • 问题是Wronghost 的 DNS 查找尝试使用错误的 ip。
  • 这可能不是 DNS 查找 - 否定查找仍然应该(相对)即时。只是连接尝试超时,与异常无关。

标签: php mysql exception pdo apache2


【解决方案1】:

连接数据库时必须使用正确的凭据。

通过设置正确的主机名连接将非常快速并且问题得到解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多