J'utilise MAMP et Git pour afficher et modifier mes fichiers PHP avec une connexion à une base de données SQL sur mon mac, puis le transférer sur le serveur Web. J'ai récemment ajouté un répertoire de fichiers. Voici le fichier avec la connexion de base de données SQl:
<?php
ob_start();
session_start();
//set timezone
date_default_timezone_set('America/New_York');
//database credentials
define('DBHOST','mysql.hostinger.co.uk');
define('DBUSER','u536535282_evan7');
define('DBPASS','...');
define('DBNAME','u536535282_dbsql');
//application address
define('DIR','http://w-o-l.ml/');
define('SITEEMAIL','[email protected]');
try {
//create PDO connection
$db = new PDO("mysql:Host='.DBHOST.';port=8889;dbname='.DBNAME, DBUSER, DBPASS.'");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
//show error
echo '<p>'.$e->getMessage().'</p>';
exit;
}
//include the user class, pass in the database connection
include('classes/user.php');
$user = new User($db);
?>
Mais pourtant, l'erreur suivante apparaît sur la page:
SQLSTATE [HY000] [2002] php_network_getaddresses: getaddrinfo a échoué: nodename ni nom_serveur fourni, ou inconnu.
Je ne vois pas mon erreur, alors si quelqu'un pouvait le signaler, ce serait utile.
Vos citations sont toutes foirées.
$db = new PDO('mysql:Host='.DBHOST.';port=8889;dbname='.DBNAME, DBUSER, DBPASS);
J'ai rencontré la même erreur avec cette ligne de code
$dsn = 'mysql:dbname=$dbname;Host=$Host;port=$port';
et j'ai pu résoudre l'erreur en remplaçant les guillemets simples par des guillemets doubles comme ci-dessous.
$dsn = "mysql:dbname=$dbname;Host=$Host;port=$port";
j'ai passé deux jours à chercher une solution en ligne et je ne l'ai pas trouvée jusqu'à ce que je décide de faire les modifications ci-dessus, et cela a fonctionné. Je ne comprends toujours pas pourquoi cela ne fonctionne pas avec des guillemets simples.