sql >> Database >  >> RDS >> Mysql

Fatale fout:niet-gevangen uitzondering 'mysqli_sql_exception' met bericht 'Geen index gebruikt in query/voorbereide instructie'

De fatale fout zit niet in MySQL; de ontbrekende indexmelding is een waarschuwing met een relatief lage ernst.

De fatale fout zit in uw PHP-code, vanwege de volgende drie voorwaarden:

  • mysqli meldt veel waarschuwingen, zelfs voor relatief ongevaarlijke omstandigheden.
  • Je gooit mysqli_sql_exception voor alle fouten en waarschuwingen vanwege uw mysqli_report(MYSQLI_REPORT_ALL); regel.
  • Je PHP-code vangt die uitzondering niet op (d.w.z. het zit niet in een try{} blok met een geschikte catch(){} block), en niet-afgevangen uitzonderingen zijn fataal.

Je kunt niet veel doen aan de eerste, zoals vermeld in het andere antwoord. U kunt het dus oplossen door uw mysqli_report(...) . te wijzigen instelling op MYSQLI_REPORT_STRICT of MYSQLI_REPORT_OFF , of iets anders dan MYSQLI_REPORT_ALL .

(edit:de opmerking van w3d hieronder geeft een goede uitleg waarom, en suggereert dat je mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) zou kunnen gebruiken als een goed alternatief)

Voor best practices, en in combinatie hiermee, moet je het correct oplossen door try{} . te gebruiken en catch(){} passend binnen uw code.



  1. Is java.sql.Timestamp tijdzone specifiek?

  2. Hoe u met sqlalchemy dynamisch kunt binden aan de database-engine per verzoek

  3. Tijdreeksen genereren tussen twee datums in PostgreSQL

  4. SQLite Unie