获取连接失败:php_network_getaddresses:getaddrinfo 失败:名称或服务未知
Getting connection failed: php_network_getaddresses: getaddrinfo failed: Name or service not known
我正在使用 POST 方法向数据库中插入一些数据 server.This 是存储在 http://www.url.com/public_html.[=15 中的 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";
?>
这是 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_network_getaddresses:getaddrinfo 失败:名称或服务未知错误。
我的数据库在同一台机器上,所以我只需要编辑:
$servername = "localhost"
现在一切正常。
您为 $servername
指定的值不是主机名,而是 URL 或资源名称。主机名只是 www.url.com
.
当然,正如您已经发现的那样,如果客户端和服务器位于同一个盒子上,localhost
是正确的主机名。
在波纹管文件中进行更改 config-db.php
nano /etc/phpmyadmin/config-db.php
将数据库服务器更改为本地主机
$dbserver='localhost';
它适合我。
来自Google的人:
如果您使用 Docker,您可以在此处使用数据库 docker 容器的名称,例如
$dbserver='mydockerbox-mysql';
如果您的 docker-compose.yml
看起来像这样:
services:
mydockerbox-mysql:
image: mysql:5.7.26
container_name: mydockerbox-mysql
我正在使用 POST 方法向数据库中插入一些数据 server.This 是存储在 http://www.url.com/public_html.[=15 中的 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";
?>
这是 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_network_getaddresses:getaddrinfo 失败:名称或服务未知错误。
我的数据库在同一台机器上,所以我只需要编辑:
$servername = "localhost"
现在一切正常。
您为 $servername
指定的值不是主机名,而是 URL 或资源名称。主机名只是 www.url.com
.
当然,正如您已经发现的那样,如果客户端和服务器位于同一个盒子上,localhost
是正确的主机名。
在波纹管文件中进行更改 config-db.php
nano /etc/phpmyadmin/config-db.php
将数据库服务器更改为本地主机
$dbserver='localhost';
它适合我。
来自Google的人: 如果您使用 Docker,您可以在此处使用数据库 docker 容器的名称,例如
$dbserver='mydockerbox-mysql';
如果您的 docker-compose.yml
看起来像这样:
services:
mydockerbox-mysql:
image: mysql:5.7.26
container_name: mydockerbox-mysql