获取连接失败:php_network_getaddresses:getaddrinfo failed:名称或服务未知

时间:2015-12-14 12:01:23

标签: php android mysql connect

我使用POST方法将一些数据插入到我的服务器上的db。这是我的{。3}}中存储的connection.php文件。

    <?php

$servername = "http://www.url.com";
$username = "db_username";
$password = "db_password";
$databaseName = "db_name";

$connect = new mysqli($servername,$username,$password,$databaseName);

if ($connect->connect_error) {
    die("Connection failed: " . $connect->connect_error);
} 
echo "Connected successfully";

?>

这是也存储在http://www.url.com/public_html中的insert.php文件,用于在数据库中插入数据。

<?php

if($_SERVER["REQUEST_METHOD"]=="POST"){
    require'connection.php';
    createStudent();
}
function createStudent(){

    global $connect;

    $name = $_POST["name"];
    $lastname = $_POST["lastname"];
    $age = $_POST["age"];

    $query="INSERT INTO  `demo` (  `name` ,  `lastname` ,  `age` ) 
    VALUES ('$name','$lastname','$age')";
    mysqli_query($connect,$query)or die (mysqli_error($connect));
    mysqli_close($connect);
}
?>

我使用邮递员和我的Android应用程序来测试这个,但我得到: 连接失败:php_network_getaddresses:getaddrinfo failed:名称或服务未知错误。

我不是php开发人员,但我的php文件中没有任何错误,所以欢迎任何帮助。

提前致谢。

4 个答案:

答案 0 :(得分:7)

您为$servername指定的值不是主机名,而是URL或资源名称。主机名只是www.url.com

当然,正如您已经发现的那样,如果客户端和服务器位于同一个盒子上,localhost是正确的主机名。

答案 1 :(得分:5)

感谢Prera​​k,

这就是答案,我的数据库在同一台机器上,所以我只需编辑:

$servername = "localhost"

现在一切正常。

答案 2 :(得分:0)

在以下文件config-db.php中进行更改

nano  /etc/phpmyadmin/config-db.php 

将数据库服务器更改为本地主机

$dbserver='localhost';

它对我有用。

答案 3 :(得分:0)

对于来自 Google 的人: 如果您使用 Docker,您可能会在此处使用数据库 docker 容器的名称,例如

$dbserver='mydockerbox-mysql';

如果您的 docker-compose.yml 如下所示:

services:
  mydockerbox-mysql:
    image: mysql:5.7.26
    container_name: mydockerbox-mysql