获取连接失败:php_网络_获取地址:获取地址信息失败:名称或服务未知

vlf7wbxs  于 2023-02-11  发布在  PHP
关注(0)|答案(4)|浏览(115)

我正在使用POST方法插入一些数据到我的服务器上的数据库中。这是我的connection.php文件,它存储在我的http://www.url.com/public_html中。

<?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";

?>

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

<?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);
}
?>

我用 Postman 和我的Android应用程序来测试这个,但我得到:连接失败:php_网络_获取地址:获取地址信息失败:名称或服务未知错误。

ahy6op9u

ahy6op9u1#

我的数据库在同一台机器上,所以我只需要编辑:

$servername = "localhost"

现在一切都很好。

r1wp621o

r1wp621o2#

您为$servername指定的值不是主机名,而是URL或资源名。主机名将仅为www.url.com
当然,正如您已经发现的那样,如果客户机和服务器位于同一个机器上,则localhost是正确的主机名。

krcsximq

krcsximq3#

  • 对于来自Google的用户:* 如果您使用Docker,您可以在此处使用数据库Docker容器的名称,例如
$dbserver='mydockerbox-mysql';

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

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

5gfr0r5j4#

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

nano  /etc/phpmyadmin/config-db.php

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

$dbserver='localhost';

对我很有效。

相关问题