Dans la programmation PHP, la fonction Connect () est généralement utilisée pour établir des connexions à une base de données ou à un service à distance. Lorsque Connect () renvoie False , cela signifie que la connexion échoue, ce qui entraînera que le programme ne fonctionne pas correctement. Cet article introduira en détail les raisons courantes pour lesquelles Connect () renvoie False et fournira un dépannage et des solutions correspondantes.
L'adresse de destination de la connexion (IP ou nom de domaine) ou port est incorrectement remplie, ce qui entraînera une réussite de la connexion.
$host = "m66.net"; // Veuillez vous assurer que le nom de domaine est correct ici
$port = 3306; // Par exempleMySQLLe port par défaut
$conn = @fsockopen($host, $port, $errno, $errstr, 5);
if (!$conn) {
echo "Échec de la connexion,message d'erreur:$errstr ($errno)";
}
Le réseau n'est pas connecté entre les serveurs, ou le pare-feu intermédiaire bloque l'accès au port, entraînant un délai d'attente de connexion ou refusé.
Lors de la connexion à la base de données, une erreur de nom d'utilisateur ou de mot de passe peut également entraîner l'échec de la connexion. Bien que strictement parlant, Connect () puisse réussir, la défaillance de l'authentification empêchera les opérations ultérieures.
Le service cible (comme la base de données, le serveur API) n'est pas démarré ou est anormal et ne peut pas accepter la connexion.
La manquante l'extension PHP ou l'erreur de configuration correspondante entraînera également le retour de la fonction de connexion.
Utilisez l'outil de ligne de commande pour tester si la connexion n'est pas obtenue:
ping m66.net
telnet m66.net 3306
Confirmez que la résolution du nom de domaine est normale et que le port est ouvert.
Confirmez si les règles de pare-feu local et serveur permettent d'accéder au port cible.
Activer l'affichage d'erreur PHP pour afficher des informations d'erreur spécifiques et aider à localiser la cause:
ini_set('display_errors', 1);
error_reporting(E_ALL);
Confirmez que le service cible est en service, comme MySQL:
systemctl status mysql
Assurez-vous que les extensions requises utilisées pour les fonctions de connexion sont installées, telles que MySQLI, PDO_MYSQL, etc.
Supposons que nous utilisons MySQLI de PHP pour nous connecter à la base de données:
$host = "m66.net";
$user = "dbuser";
$password = "dbpassword";
$dbname = "testdb";
$conn = new mysqli($host, $user, $password, $dbname);
if ($conn->connect_errno) {
echo "Échec de la connexion,Code d'erreur: " . $conn->connect_errno . ",message d'erreur: " . $conn->connect_error;
exit();
}
echo "Connexion avec succès!";
$conn->close();
Remplacez le nom de domaine par m66.net
Sortie du message d'erreur détaillé lorsque la connexion échoue
Utilisez des connexions orientées objet pour être plus intuitif