Rumah > Soal Jawab > teks badan
P粉1619397522023-09-06 12:49:44
Anda boleh melakukan ini dengan melumpuhkan pelaporan ralat mysqli, tetapi ini tidak sepatutnya dilakukan untuk mana-mana projek biasa. Malah, nampaknya anda melakukan masalah ini dengan cara yang salah! Anda tidak sepatutnya mahu melumpuhkan pelaporan ralat, anda harus membetulkan ralat!
Seperti yang anda nyatakan, jika ralat datang daripada pernyataan SQL dinamik yang tidak dibina dengan betul, maka kod anda tidak seharusnya mengandungi sebarang logik untuk mengendalikan senario yang mungkin ini kerana anda tidak mahu ralat itu menjadi sebahagian daripada reka bentuk. Sama seperti ralat lain, ini adalah pepijat dalam kod PHP. Hakikat bahawa ia menunjukkan dirinya sebagai ralat MySQL adalah tidak relevan. Anda mesti membetulkan kod yang membina pernyataan SQL yang tidak sah! Menyenyapkan ralat tidak membantu membetulkan ralat!
Dengan mengandaikan bahawa kod PHP anda membina SQL daripada bahagian SQL tetap (jika ia menggunakan pembolehubah, maka terdapat masalah yang lebih besar dalam kod anda), maka tugas anda adalah untuk menentukan laluan kod yang menyebabkan gabungan kata kunci SQL yang salah. Anda boleh membuat kesimpulan sebahagiannya daripada ralat SQL. Mesej pengecualian akan memberitahu anda apakah ralat sintaks. Jika ralat MySQL tidak berkaitan dengan sintaks yang rosak, prosesnya masih serupa: cari punca ralat dan betulkan.
Jangan tulis logik pengendalian ralat khas di sekitar kod SQL. Ia mengelirukan dan sama sekali tidak perlu.