PHP: Unknown MySQL server host avec mysqli
J'ai le code suivant:
$username = 'username';
$password = 'password';
$host = 'localhost';
$db = 'dbname';
$dbh = new mysqli('p:'.$host, $username, $password, $db)
or die('no connection to server');
Mais j'obtiens l'erreur suivante
PHP Warning: mysqli::mysqli() [<a href='function.mysqli-mysqli'>function.mysqli-mysqli</a>]: (HY000/2005): Unknown MySQL server host 'p:localhost' (1) in /var/www/vhosts/politiker.lu/httpdocs/includes/sql.php on line 8
Cela m'intrigue parce que le même code a travaillé sur mon environnement de développement. Maintenant que je veux mettre en place sur mon serveur de production, il ne fonctionne pas. Des idées?
Note: je ne suis pas très bon avec les serveurs, donc excusez-moi si le message d'erreur devrait être quelque chose de trivial.
EDIT 1
Voici les versions:
Développement PHP (5.3.3-1ubuntu9.1) + MySQL 5.1.49-1ubuntu8.1)
La Production de PHP (5.2.4-2ubuntu5.12) + MySQL 5.0.51 a)
- Peut-être que vos versions de PHP et/ou mysqli sont différents dans les deux environnements? Peut-être que la version sur le serveur de production ne prend pas en charge les connexions persistantes?
- Que faire si vous venez de supprimer la p: partie?
Vous devez vous connecter pour publier un commentaire.
prendre le
p:
comme ceci:p:
est censé indiquer les connexions persistantes.Juste en ajoutant cette car je ne pensais pas que c'était clair, mais le problème est certainement votre version de production de PHP. Les connexions persistantes pour la mysqli extensions ne sont pas ajoutés jusqu'à 5.3 depuis qu'ils ont causé des maux de tête avant de.
Certains hôtes peuvent avoir différentes versions de PHP installé... j'ai réalisé aujourd'hui que je peux faire de HostGator utilisation de PHP 5.3! J'ai juste eu à ajouter à mes .htaccess:
je pense que vous avez raté la mysqli paquet dans ce serveur. Essayez :
si apt-get dit qu'il est déjà installé, essayez de faire un ping localhost, si ce n'est pas de résoudre éditer /etc/hosts et vérifier la ligne où localhost pointe vers 127.0.0.1
devrait y être, si non, votre serveur de son horriblement configuré!
faire un
et de vérifier si vous obtenez une sortie comme ça...
Vous devez spécifier l'emplacement réel du serveur MySQL. Pour le développement, il est
localhost
(le plus probable), il suffit de savoir que vous l'avez configuré. Mais pour les serveurs de production, il va être quelque chose d'autre. Je doute qu'il devrait êtrelocalhost
.