Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro fatal:exceção não capturada 'mysqli_sql_exception' com mensagem 'Nenhum índice usado na consulta/instrução preparada'


O erro fatal não está no MySQL; a notificação de índice ausente é um aviso de gravidade relativamente baixa.

O fatal erro está em seu código PHP, devido às três condições a seguir:
  • mysqli relata muito de avisos, mesmo para condições relativamente inofensivas.
  • Você está lançando mysqli_sql_exception para todos os erros e avisos devido ao seu mysqli_report(MYSQLI_REPORT_ALL); linha.
  • Seu código PHP não está capturando essa exceção (ou seja, não está em um try{} bloco com um catch(){} apropriado block) e exceções não capturadas são fatais.

Você não pode fazer muito sobre o primeiro, como mencionado na outra resposta. Então, você pode corrigi-lo alterando seu mysqli_report(...) configuração para MYSQLI_REPORT_STRICT ou MYSQLI_REPORT_OFF , ou qualquer outra coisa além de MYSQLI_REPORT_ALL .

(edit:o comentário do w3d abaixo dá uma boa explicação do porquê e sugere que você pode usar mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) como uma boa alternativa)

Para práticas recomendadas, e em combinação com isso, você deve corrigi-lo corretamente usando try{} e catch(){} apropriadamente em seu código.