2013-09-01 4 views
0

Je suis en train de tester la clause die() dans le code ci-dessous. Lorsque j'entre un mot de passe incorrect et que j'utilise la fonction mysqli_connect_error(), tout fonctionne comme prévu et j'obtiens le message d'erreur MySQL. Pourquoi ça ne marche pas quand j'utilise mysqli_error()? J'étais sous l'impression mysqli_error() devrait retourner la description de la dernière erreur, quel que soit le type d'erreur, pour l'appel de fonction le plus récent? Im en utilisant PHP 5.2.17PHP mysqli DB connexion: messages d'erreur

Cela fonctionne:

$conn = mysqli_connect("localhost","testUser","incorrectPassword","testDB") 
or die(mysqli_connect_error()); 

Cela ne fonctionne pas:

$conn = mysqli_connect("localhost","testUser","incorrectPassword","testDB") 
or die(mysqli_error()); 

voudrais comprendre pourquoi.

+0

Je crois que c'est parce que le mysqli_error() a besoin d'un lien DB valide. Cette fonction est de vérifier les erreurs des requêtes, pas les erreurs de connexion. – Crackertastic

+0

Il semble qu'il existe une propriété spéciale pour les erreurs * connect *: http://us3.php.net/manual/fr/mysqli.connect-error.php –

Répondre

0

Il a besoin de la connexion mysqli_error ($ link). La fonction mysqli_error() est identique à la fonction mysqli_errno() correspondante, sauf qu'au lieu de renvoyer un code d'erreur entier, la fonction mysqli_error() retournera une représentation sous forme de chaîne de la dernière erreur survenant pour la connexion à la base de données représenté par le paramètre link. Si aucune erreur ne s'est produite, cette fonction renverra une chaîne vide.

http://php.net/manual/en/mysqli.error.php

On est pour la connexion de l'autre 2 pour les erreurs de requête.