mysqli_connect():php_network_getaddresses:getaddrinfo失败:名称或服务未知

时间:2014-04-08 19:47:23

标签: php mysqli

我在一个主要使用数据库的网站上工作。问题在于发现以下错误:mysqli_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known 我无法弄清楚如何解决它。我已经对连接进行了检查,看起来没问题。

function connect($hostname, $username, $password, $database)
{
    $conid = mysqli_connect($hostname, $username, $password, TRUE);


    if($conid == FALSE)
    {
        if(DEBUG == TRUE)
        {
            show_error("MySQL Connection using `$hostname`, `$username`, `$password` was refused");
        }

        return;
    }

    else
    {
        $dbid = mysqli_select_db($database, $conid);

        if($dbid == FALSE)
        {
            if(DEBUG == TRUE)
            {
                show_error("MySQL could not connect to database `$database`");
            }

            return;
        }

        else
        {
            self::$connections[] = $conid;
            self::$connection    = $conid;
        }
    }
}

代码在2010年写完,然后以某种方式起作用。是否有可能修复?

4 个答案:

答案 0 :(得分:3)

这是服务器托管问题。您必须与托管服务商联系。

您还可以通过以下链接阅读更多提示:http://albertech.net/2011/05/fix-php_network_getaddresses-getaddrinfo-failed-name-or-service-not-known/

答案 1 :(得分:0)

您的PHP服务器已升级,您的托管服务不支持。

答案 2 :(得分:0)

我有一个类似的问题,通过检查和解析DNS解析来解决我的问题(在我们的例子中,在cagefs中使用与核心系统不同的/ etc / hosts)

答案 3 :(得分:0)

我自己在2个工作的PHP 7.1,Apache 2.4和mariaDB 10.2 / 10.4服务器之间遇到了错误。

对我来说,此问题是由使用“ http://1.2.3.4/”作为数据库主机引起的-这将导致PHP返回此错误mysqli_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known。对我来说,这对我来说当然是个虚假的错误,因为他们俩都分别托管相同的网站和数据库,因此没有理由不起作用。

主机变量只能是IP地址“ 1.2.3.4”或域/子域(不包括协议)“ example.com”或“ subdomain.example.com”,它们现在可以正确连接。