2011-06-26 18 views
3

Cela semble être une erreur plutôt courante, mais je ne peux pas m'en sortir. Je cours PHP 5.3.1 vers un serveur MySQL externe 5.5.8 - les deux installés avec Phpmyadmin et exécutant Windows Server 2k8R2.Mysqli: hôte de serveur inconnu

Quand je effectuez les opérations suivantes:

$connection = new mysqli("myhost.com:3306", "myUser", "myPwd", "myDB"); 
    $result = $connection->prepare("SELECT * FROM tt_staff 
          WHERE crew_type = ? 
          AND inaktiv_vakt = 0 
          ORDER BY ansvarlig_vakt DESC, crew_type, navn_vakt"); 
    $result->bind_param("s", $value); 
    $result->execute(); 
    $result->bind_result($value, $name); 

je reçois le " Attention: mysqli :: mysqli() [mysqli.mysqli]: (HY000/2005): hôte du serveur MySQL Unknown (... "

Je me suis assuré que le Mysqli est activé dans le fichier php.ini sur le serveur DB, mais c'est aussi tout ce que j'ai fait car on m'a dit que cela devrait fonctionner dès le départ. Puisque c'est la première fois que je travaille avec des déclarations préparées, il peut très bien y avoir une erreur de typo là-bas.

+0

Vous avez mentionné que vous avez PhpMyAdmin sur les deux - pouvez-vous vous connecter de la boîte de PHP à la DB en utilisant PhpMyAdmin? Si Oui - vérifiez vos paramètres (adresse et port du serveur); Si non - éventuellement pare-feu sur le serveur DB. – LazyOne

Répondre

16

Le problème est que MySQLi n'accepte pas le port comme partie du nom d'hôte, mais comme un paramètre distinct, alors je pense que c'est ainsi que vous devriez ouvrir votre connexion:

$connection = new mysqli("myhost.com", "myUser", "myPwd", "myDB", "3306"); 

Ou peut-être, ne donnez pas le port du tout, car 3306 est le port par défaut.

+1

C'était la solution, facile et simple. Je pensais avoir besoin du numéro de port car je devais le spécifier avec des connexions MySql normales. Merci :) –

0

mysqli ne peut pas trouver le serveur de base de données, vous devez vérifier que le numéro de domaine et le port sont corrects

1

Vérifiez les privilèges pour l'utilisateur (« myUser ») sur la base de données. Assurez-vous que les privilèges autorisent les connexions via '%' (ou seulement votre adresse IP), et pas seulement 'localhost' (127.0.0.1). Ensuite, assurez-vous de « recharger priviliges'

BlockquoteNote:. PhpMyAdmin obtient les utilisateurs de privilèges directement des tables de droits de MySQL Le contenu de ces tableaux peuvent différer des privilèges du serveur utilise, si elles ont été modifiées manuellement.. Dans ce cas, vous devez recharger les privilèges avant de continuer

Questions connexes