sql >> Database teknologi >  >> RDS >> Mysql

Fatal fejl:Ufanget undtagelse 'mysqli_sql_exception' med beskeden 'Intet indeks brugt i forespørgsel/forberedt erklæring'

Den fatale fejl er ikke i MySQL; underretningen om manglende indeks er en advarsel med relativt lav sværhedsgrad.

Den dødelige fejl er i din PHP-kode på grund af følgende tre forhold:

  • mysqli rapporterer en masse af advarsler, selv for relativt harmløse forhold.
  • Du kaster mysqli_sql_exception for alle fejl og advarsler på grund af din mysqli_report(MYSQLI_REPORT_ALL); linje.
  • Din PHP-kode fanger ikke denne undtagelse (dvs. den er ikke i et try{} blok med en passende catch(){} blok), og ufangede undtagelser er fatale.

Du kan ikke gøre meget ved den første, som nævnt i det andet svar. Så du kan rette det enten ved at ændre din mysqli_report(...) indstilling til MYSQLI_REPORT_STRICT eller MYSQLI_REPORT_OFF , eller faktisk noget andet end MYSQLI_REPORT_ALL .

(edit:w3d's kommentar nedenfor giver en god forklaring på hvorfor, og foreslår, at du kan bruge mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) som et godt alternativ)

For bedste praksis, og i kombination med dette, bør du rette det korrekt ved at bruge try{} og catch(){} passende i din kode.



  1. SQL, hvordan man bruger SELECT

  2. Sådan udskrives flere rapporter med stregkoder \ eller flere stregkoder i én rapport

  3. SSRS 2014 rapport implementeringsproblem

  4. Hvordan bygger man en kolbeapplikation omkring en allerede eksisterende database?