Apabila melaksanakan pernyataan PDO SQL, kegagalan yang tidak dijangka boleh timbul tanpa sebarang mesej ralat yang jelas. Memahami sebab di sebalik kegagalan senyap ini adalah penting untuk menyelesaikannya dengan berkesan.
Pertama sekali, adalah penting untuk mengkonfigurasi PDO untuk melaporkan ralat. Dengan menetapkan $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) atau menambahkan parameter ini sebagai pilihan sambungan, ralat pangkalan data akan diterjemahkan ke dalam pengecualian PDO, memberikan mesej ralat terperinci.
Kedua, menggunakan pernyataan yang disediakan dengan ruang letak (?) untuk pembolehubah SQL memastikan pertanyaan betul secara sintaksis. Menggantikan pembolehubah PHP dengan ruang letak menghapuskan kemungkinan ralat sintaks.
Kegagalan pertanyaan PDO boleh dibahagikan kepada empat kategori:
Untuk melihat ralat PHP, pastikan pelaporan ralat dihidupkan dengan menetapkan error_reporting(E_ALL) dan ini_set('display_errors',1) untuk pelayan pembangunan. Untuk tapak langsung, tetapkan ini_set('log_errors', 1) untuk mengelog ralat dan bukannya memaparkannya.
Pengecualian PDO ialah mekanisme yang mencukupi untuk pelaporan ralat. Menggunakan binaan cuba-tangkap untuk tujuan ini tidak semestinya rumit dan harus dielakkan.
Atas ialah kandungan terperinci Mengapa Pernyataan PDO Saya Gagal Secara Senyap, dan Bagaimana Saya Boleh Nyahpepijatnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!