Verbinding maken mislukt: php_network_getaddresses: getaddrinfo mislukt: naam of service niet bekend

Ik gebruik de POST-methode om wat gegevens in db op mijn server in te voegen. Dit is mijn connection.php-bestand dat is opgeslagen in mijn 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";
?>

Dit is een insert.php-bestand dat ook is opgeslagen in http://www.url.com/public_htmldie ik gebruik om gegevens in de database in te voegen.

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

Ik gebruik postbode en mijn Android-app om dit te testen, maar ik krijg:
Verbinding mislukt: php_network_getaddresses: getaddrinfo mislukt: naam of service niet bekend.

Ik ben geen php-ontwikkelaar, maar ik zie geen enkele fout in mijn php-bestanden, dus alle hulp is welkom.

Bij voorbaat dank.


Antwoord 1, autoriteit 100%

Bedankt Prerak,

Dit is het antwoord, mijn database bevindt zich op dezelfde machine, dus ik moest alleen bewerken:

$servername = "localhost"

Nu werkt alles prima.


Antwoord 2, autoriteit 44%

De waarde die je hebt opgegeven voor $servernameis geen hostnaam maar eerder een URL of resourcenaam. De hostnaam zou gewoon www.url.comzijn.

Natuurlijk, zoals je al hebt ontdekt, is localhostde juiste hostnaam als de client en server zich op dezelfde box bevinden.


Antwoord 3

Breng wijzigingen aan in het onderstaande bestand config-db.php

nano  /etc/phpmyadmin/config-db.php 

wijzig db-server als localhost

$dbserver='localhost';

Het werkt voor mij.


Antwoord 4

Voor mensen die van Google komen:
Als u met Docker werkt, kunt u hier de naam van de databasedocker-container gebruiken, zoals

$dbserver='mydockerbox-mysql';

als uw docker-compose.ymler zo uitziet:

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

Other episodes