我已经成功地编写了我的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引发的错误。
问候语,