sql >> Base de Datos >  >> RDS >> Mysql

Error fatal:excepción no detectada 'mysqli_sql_exception' con el mensaje 'No se usó índice en la consulta/declaración preparada'

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_exception para todos los errores y advertencias debido a su mysqli_report(MYSQLI_REPORT_ALL); línea.
  • Tu código PHP no detecta esa excepción (es decir, no está en un try{} bloque con un catch(){} 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.