我使用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文件中没有任何错误,所以欢迎任何帮助。
提前致谢。
答案 0 :(得分:7)
您为$servername
指定的值不是主机名,而是URL或资源名称。主机名只是www.url.com
。
当然,正如您已经发现的那样,如果客户端和服务器位于同一个盒子上,localhost
是正确的主机名。
答案 1 :(得分:5)
感谢Prerak,
这就是答案,我的数据库在同一台机器上,所以我只需编辑:
$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