Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kesalahan fatal:Pengecualian yang tidak tertangkap 'mysqli_sql_exception' dengan pesan 'Tidak ada indeks yang digunakan dalam kueri/pernyataan yang disiapkan'

Kesalahan fatal tidak ada di MySQL; pemberitahuan indeks yang hilang adalah peringatan dengan tingkat keparahan yang relatif rendah.

Yang fatal kesalahan ada dalam kode PHP Anda, karena tiga kondisi berikut:

  • mysqli melaporkan banyak peringatan, bahkan untuk kondisi yang relatif tidak berbahaya.
  • Anda melempar mysqli_sql_exception untuk semua kesalahan dan peringatan karena mysqli_report(MYSQLI_REPORT_ALL); . Anda baris.
  • Kode PHP Anda tidak menangkap pengecualian itu (yaitu tidak dalam try{} blokir dengan catch(){} . yang sesuai blok), dan pengecualian yang tidak tertangkap berakibat fatal.

Anda tidak dapat berbuat banyak tentang yang pertama, seperti yang disebutkan dalam jawaban yang lain. Jadi, Anda dapat memperbaikinya dengan mengubah mysqli_report(...) pengaturan ke MYSQLI_REPORT_STRICT atau MYSQLI_REPORT_OFF , atau memang apa pun selain MYSQLI_REPORT_ALL .

(edit:komentar w3d di bawah ini memberikan penjelasan yang bagus mengapa, dan menyarankan Anda dapat menggunakan mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) sebagai alternatif yang baik)

Untuk praktik terbaik, dan dalam kombinasi dengan ini, Anda harus memperbaikinya dengan benar menggunakan try{} dan catch(){} sesuai dengan kode Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan jumlah kolom MySQL di PHP

  2. Mempercepat penghitungan baris di MySQL

  3. Bagaimana menghubungkan ke MySQL menggunakan Perl

  4. Instal beberapa instance MySQL di server Linux - gunakan file konfigurasi MySQL terpisah

  5. PHP CRUD Buat, edit, perbarui, dan hapus posting dengan database MySQL