Comment gérer les erreurs mysql

Vous utilisez les fonctions mysqli du langage PHP, tels que mysqli_connect et mysqli_query, pour interagir avec la base de données MySQL. Les choses vont parfois mal tourner lorsque vous utilisez les déclarations. Vous pouvez faire une erreur dans votre saisie, tels que les fautes de frappe d'un nom de base de données. Parfois, des problèmes surgissent que vous ne pouvez pas éviter, tels que la base de données ou le réseau étant bas.

Vous devez inclure le code dans votre script qui gère les situations d'erreur.

Vous souhaitez généralement pour rendre votre gestion des erreurs plus descriptive pour aider à résoudre les problèmes au cours du développement, mais vous ne voulez pas l'information supplémentaire affichée au public.

Par exemple, supposons que vous utilisez un compte appelé root pour accéder à votre base de données et vous faites une faute de frappe, comme dans les états suivants:

$ host = "localhost" - $ user = "rot" - $ password = "" - $ cxn = mysqli_connect ($ host,$utilisateur,$mot de passe)

Parce que vous tapez "rot" plutôt que "root", vous voyez un message d'avertissement semblable à celui-ci:

Attention: Accès refusé pour l'utilisateur: «pourriture @ localhost '(Using password: NO) ...



Le message d'erreur précédent contient les informations que vous avez besoin de comprendre le problème - il affiche votre nom de compte qui comprend la faute de frappe.

Cependant, après l'exécution du script et les clients l'utilisent, vous ne voulez pas que vos utilisateurs voient un message d'erreur technique qui montre votre ID utilisateur. Vous voulez transformer les erreurs PHP off ou les envoyer à un fichier journal d'erreur. Vous pouvez ensuite utiliser un mourir déclaration pour arrêter le script et affiche un message poli à l'utilisateur, comme suit:

$ cxn = mysqli_connect ($ host,$utilisateur,$mot de passe) or die (". Le catalogue est pas disponible pour le moment S'il vous plaît essayer à nouveau plus tard.") -

Lorsqu'un mysqli_query () fonction échoue, MySQL retourne un message d'erreur qui contient des informations sur la cause de l'échec. Cependant, ce message est affiché à moins pas vous affichez spécifiquement. Encore une fois, vous pouvez voir ces messages lorsque vous êtes en développement le script, mais vous ne pouvez pas vouloir les afficher au public. Vous pouvez afficher l'erreur MySQL qui est renvoyée en utilisant la fonction suivante:

mysqli_error ($ cxn)

Par exemple, vous pouvez inclure la fonction dans votre code, comme suit:

$ query = "SELECT * FROM Cust" - Résultat $ = mysqli_query ($ cxn, $ query) or die ("Erreur:" .mysqli_error ($ cxn)) -

Dans cet exemple, si l'appel de fonction échoue, le mourir déclaration affiche l'erreur MySQL, qui pourrait être quelque chose comme ceci:

Erreur: Table 'catalog.cust' does not exist

Parfois, vous voudrez peut-être effectuer des actions supplémentaires si la fonction échoue, comme supprimer des variables ou fermer la connexion de base de données. Vous pouvez effectuer ces actions en utilisant une instruction conditionnelle:

(! $ result = mysqli_query ($ cxn, $ query)) {echo mysqli_error ($ de cxn) -unset ($ auth) -exit () -}

Si l'appel de fonction échoue, les déclarations contenues dans le si bloc sont exécutées. La écho déclaration affiche l'erreur MySQL renvoyée par la fonction. Une variable est retirée, et le script sort.

Notez le ! (point d'exclamation) dans le si déclaration. ! moyens "pas". En d'autres termes, la si déclaration est vraie si la déclaration d'affectation est pas vrai.


» » » Comment gérer les erreurs mysql