PDO抛出异常并发出警告

时间:2013-12-11 14:37:31

标签: php pdo

我已经成功编写了扩展PDO的OOP类,一切似乎都按预期工作!但是我很困惑,如果提供了错误的db user / pass组合或名称,它会抛出异常,但是如果“db host”不正确或无效,它会抛出异常警告,为什么会这样?

  

[2013年12月11日14:37:01 UTC] PHP警告:PDO :: __ construct():   php_network_getaddresses:getaddrinfo失败:名称或服务没有   已知的   /home/sdrop/public_html/includes/modules/monetarysoft/ttbs.php上线   15

2 个答案:

答案 0 :(得分:2)

如果你指定一个无效的主机名,让我们说“ThisHostDoesPropablyNotExist.com”还有另一个内部函数 - 即 getaddrinfo 参与检查主机名。

警告意味着PHP无法首先查找主机名。如果您只使用错误的组合,则可以访问服务器(因此查找主机地址没有问题),因此getaddrinfo不会抛出任何错误。

映入眼帘,

答案 1 :(得分:2)

根据要求移动回答:

这是因为您仍然提供有效的主机名,但没有运行任何服务。

问题是输入是一个字符串,所以几乎所有主机名的输入都是有效的,即:localhost或127.0.0.1或blah.blah.com等等,所以它不能在输入时失败。

只有在提供的主机上没有运行服务时才会失败,这就是为什么它会警告您没有服务正在运行然后抛出异常。