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

mysqli atau mati, apakah harus mati?

Apakah harus mati

Sebaliknya, seharusnya tidak or die() pernah.
PHP adalah bahasa keturunan yang buruk. Keturunan yang sangat buruk. Dan or die() dengan pesan kesalahan sebagai salah satu dasar terburuk:

  • die mengeluarkan pesan kesalahan, mengungkapkan beberapa internal sistem kepada calon penyerang
  • ini membingungkan pengguna yang tidak bersalah dengan pesan aneh dan membuat mereka tidak memiliki antarmuka untuk digunakan, sehingga kemungkinan besar mereka akan keluar begitu saja.
  • mematikan skrip di tengah, sehingga dapat menyebabkan desain robek (atau tidak ada desain sama sekali) yang ditampilkan (yaitu, render halaman yang diminta pengguna tidak lengkap)
  • membunuh skrip secara permanen. Sementara pengecualian yang dilemparkan dapat ditangkap dan ditangani dengan anggun
  • die() tidak memberi Anda petunjuk tentang tempat terjadinya kesalahan . Dan dalam aplikasi yang relatif besar akan cukup sulit untuk menemukannya.

Jadi, jangan pernah gunakan die() dengan kesalahan MySQL, bahkan untuk debugging sementara :ada cara yang lebih baik.

Alih-alih memeriksa kesalahan secara manual, cukup konfigurasikan mysqli untuk memberikan pengecualian pada kesalahan, dengan menambahkan baris berikut ke kode koneksi Anda

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

dan setelah itu tulis saja setiap perintah mysqli apa adanya, tanpa or die atau yang lainnya:

$result = mysqli_query($link, $sql);

Kode ini akan mengeluarkan pengecualian jika terjadi kesalahan dan dengan demikian Anda akan selalu diberitahu tentang setiap masalah tanpa satu baris kode tambahan.

Penjelasan lebih rinci tentang cara membuat produksi pelaporan kesalahan Anda siap, seragam, dan secara keseluruhan masuk akal sekaligus membuat kode Anda lebih bersih, Anda dapat menemukannya di artikel saya di Pelaporan kesalahan PHP .



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

  2. Panduan Merancang Database Untuk Keranjang Belanja Online Di MySQL

  3. prosedur tersimpan mysql yang menyebut dirinya secara rekursif

  4. Apa itu CHAR_LENGTH() di MySQL?

  5. Lengkapi Laravel 8 Soft Hapus &Kembalikan Tutorial Catatan yang Dihapus