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 à votremysqli_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 uncatch(){}
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.