PDO抛出异常并发出警告


PDO throws exception with a warning

我已经成功地编写了我的OOP类,它扩展了PDO,一切似乎都如预期的那样工作!然而,我很困惑,如果提供了错误的数据库用户/密码组合或名称,它会抛出Exception,这很好,但如果"数据库主机"不正确或无效,它会发出异常警告,为什么?

【2013年12月11日14:37:01 UTC】PHP警告:PDO::__construct():php_network_getaddresses:getaddrinfo失败:名称或服务无效已知于/home/sdrop/public_html/includs/modules/monetarysoft/ttbs.php联机15

移动到应请求回答:

这是因为你仍然提供了一个有效的主机名,但上面没有运行任何服务

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

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

如果您指定了一个无效的主机名,比如说"ThisHostDoesPropablyNotExist.com",还有另一个内部函数,即检查主机名时涉及的getaddrinfo。

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

问候语,