Maison > Questions et réponses > le corps du texte
P粉2521165872023-07-25 15:41:15
Parfois, votre code mysqli générera des erreurs, telles que mysqli_fetch_assoc() s'attendant à ce que le paramètre 1 soit mysqli_result mais obtenant en réalité un booléen..., appelant une fonction membre de bind_param()... ou des erreurs similaires. Il n'y a même pas d'erreur mais la requête ne fonctionne toujours pas. Cela signifie que votre requête n'a pas pu s'exécuter.
Chaque fois qu'une requête échoue, MySQL affichera un message d'erreur expliquant pourquoi. Dans les anciennes versions de PHP, ces messages d'erreur n'étaient pas transmis à PHP et vous obteniez simplement le message d'erreur obscur mentionné ci-dessus. Par conséquent, il est très important de configurer PHP et mysqli pour vous signaler les erreurs MySQL. Une fois que vous recevez le message d’erreur, vous pouvez corriger l’erreur.
Tout d'abord, dans tous les environnements, ajoutez toujours la ligne de code suivante avant la connexion mysqli :
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Après cela, toutes les erreurs MySQL seront converties en exceptions PHP. Les exceptions non interceptées provoqueront des erreurs fatales PHP. Ainsi, si une erreur MySQL se produit, vous recevrez une erreur PHP régulière. Cela vous fera immédiatement prendre conscience de la cause de l’erreur. Et la trace de la pile vous mènera à l'emplacement exact où l'erreur s'est produite.
Sur le serveur de développement, assurez-vous que le message d'erreur s'affiche à l'écran, et sur le serveur de production, vérifiez le journal des erreurs. Voir mon article sur le rapport d'erreurs PHP pour plus de détails.
Veuillez noter que lorsque vous effectuez des appels AJAX, ouvrez les outils de développement (F12) sur le serveur de développement et passez à l'onglet réseau. Faites ensuite une demande dont vous souhaitez voir les résultats et elle apparaîtra dans l'onglet Réseau. Cliquez dessus et passez à l'onglet Réponse. Vous y verrez le résultat exact. Sur le serveur de production, vérifiez le journal des erreurs.
Tout d’abord, vous devez trouver la requête problématique. Le message d'erreur contient le nom du fichier et le numéro de ligne où l'erreur s'est produite. Pour du code simple, cela suffit, mais si votre code utilise des fonctions ou des classes, vous devrez peut-être tracer la pile pour trouver la requête problématique.
Après avoir reçu le message d'erreur, vous devez le lire et le comprendre. Cela peut paraître trop évident, mais les apprenants négligent souvent le fait qu’un message d’erreur est plus qu’un simple signe d’avertissement : il contient en réalité une explication détaillée du problème. Il vous suffit de lire le message d'erreur et de résoudre le problème.
Si vous ne comprenez pas le message d'erreur, essayez de le rechercher sur Google. Lorsque vous parcourez les résultats, choisissez des réponses qui expliquent l'erreur plutôt que de donner directement une solution. La solution peut ne pas fonctionner dans votre situation spécifique, mais l’explication vous aidera à comprendre le problème et vous permettra de le résoudre vous-même.
Vous devez également croire à la désinformation. Si le message d'erreur indique que le nombre de jetons ne correspond pas au nombre de variables de liaison, c'est tout. Il en va de même pour les tables ou colonnes manquantes. Lorsque vous choisissez, que ce soit de votre propre faute ou de la désinformation, tenez-vous-en toujours à la première. Encore une fois, cela peut paraître arrogant, mais les centaines de questions sur ce site prouvent à quel point ce conseil est utile.
Si votre requête ne semble pas fonctionner, il peut y avoir quatre raisons :