Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur fatale :exception non interceptée 'mysqli_sql_exception' avec le message 'Aucun index utilisé dans la requête/instruction préparée'

L'erreur fatale n'est pas dans MySQL; la notification d'index manquant est un avertissement de gravité relativement faible.

Le mortel l'erreur se trouve dans votre code PHP, à cause des trois conditions suivantes :

  • mysqli signale beaucoup d'avertissements, même pour des conditions relativement inoffensives.
  • Vous lancez mysqli_sql_exception pour toutes les erreurs et avertissements dus à votre mysqli_report(MYSQLI_REPORT_ALL); ligne.
  • Votre code PHP n'attrape pas cette exception (c'est-à-dire qu'il n'est pas dans un try{} bloc avec un catch(){} approprié block), et les exceptions non interceptées sont fatales.

Vous ne pouvez pas faire grand-chose pour le premier, comme mentionné dans l'autre réponse. Ainsi, vous pouvez le réparer soit en modifiant votre mysqli_report(...) paramètre sur MYSQLI_REPORT_STRICT ou MYSQLI_REPORT_OFF , ou bien autre chose que MYSQLI_REPORT_ALL .

(edit :le commentaire de w3d ci-dessous donne une bonne explication pourquoi, et suggère que vous pourriez utiliser mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) comme une bonne alternative)

Pour les meilleures pratiques, et en combinaison avec cela, vous devez le corriger correctement en utilisant try{} et catch(){} correctement dans votre code.