I'm using POST method to insert some data to db on my server.This is my connection.php file that is stored in my 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";
?>
This is insert.php file also stored in http://www.url.com/public_html that I use to insert data in database.
<?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);
}
?>
I use postman, and my Android app to test this but I'm getting: Connection failed: php_network_getaddresses: getaddrinfo failed: Name or service not known error.
My database is on the same machine so I just needed to edit:
$servername = "localhost"
Now everything is working just fine.
The value you've specified for $servername
is not a host name but rather a URL, or resource name. The host name would be just www.url.com
.
Of course, as you've already discovered, localhost
is the correct host name if the client and server reside on the same box.
For people coming from Google: If you work with Docker, you might use the name of the database docker container here, like
$dbserver='mydockerbox-mysql';
if your docker-compose.yml
looks like this:
services:
mydockerbox-mysql:
image: mysql:5.7.26
container_name: mydockerbox-mysql
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With