我在一个主要使用数据库的网站上工作。问题在于发现以下错误: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年写完,然后以某种方式起作用。是否有可能修复?
答案 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”,它们现在可以正确连接。