El error fatal no está en MySQL; la notificación de índice faltante es una advertencia de gravedad relativamente baja.
El fatal el error está en su código PHP, debido a las siguientes tres condiciones:
- mysqli informa mucho mucho de advertencias, incluso para condiciones relativamente inofensivas.
- Estás lanzando
mysqli_sql_exceptionpara todos los errores y advertencias debido a sumysqli_report(MYSQLI_REPORT_ALL);línea. - Tu código PHP no detecta esa excepción (es decir, no está en un
try{}bloque con uncatch(){}apropiado block), y las excepciones no detectadas son fatales.
No puede hacer mucho sobre el primero, como se menciona en la otra respuesta. Entonces, puede solucionarlo cambiando su mysqli_report(...) configurando en MYSQLI_REPORT_STRICT o MYSQLI_REPORT_OFF , o de hecho cualquier otra cosa que no sea MYSQLI_REPORT_ALL .
(editar:el comentario de w3d a continuación brinda una buena explicación de por qué y sugiere que podría usar mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) como una buena alternativa)
Para las mejores prácticas, y en combinación con esto, debe corregirlo correctamente usando try{} y catch(){} apropiadamente dentro de su código.