Mengatasi Cabaran Pertanyaan SQL dengan Perkataan Terpelihara: Kes 'Pesanan'
Menulis pertanyaan SQL untuk jadual yang berkongsi nama yang sama seperti yang dilindungi kata kunci dalam MySQL boleh memberikan cabaran. Mari kita terokai kes tertentu di mana perkataan terpelihara 'perintah' menyebabkan ralat sintaks.
Masalahnya
Pertanyaan berikut gagal dilaksanakan, mengakibatkan ralat sintaks:
mysql_query("SELECT * FROM order WHERE orderID = 102;");
Mesej ralat menyerlahkan isu dengan sintaks berhampiran 'perintah DI MANA'.
Penyelesaian
'Pesanan' ialah perkataan terpelihara dalam MySQL, bermakna ia mempunyai tujuan khas dalam bahasa dan tidak boleh digunakan sebagai jadual atau nama medan tanpa pengendalian tambahan. Untuk menyelesaikan masalah ini, kita boleh membungkus nama jadual dalam aksara melarikan diri:
mysql_query("SELECT * FROM `order` WHERE orderID = 102;");
Dengan melampirkan 'order' dalam tanda belakang (`), ia dianggap sebagai pengecam dan pertanyaan berjaya dilaksanakan.
Pertimbangan Tambahan
Secara amnya disyorkan untuk mengelakkan penggunaan reserved perkataan sebagai nama jadual atau medan untuk mengelakkan kemungkinan konflik. Walau bagaimanapun, apabila perlu, ingat untuk melarikan diri mereka menggunakan aksara yang sesuai.
Untuk mendapatkan maklumat lanjut tentang perkataan terpelihara dalam MySQL, rujuk dokumentasi: https://dev.mysql.com/doc/refman/5.5 /ms/keywords.html
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membetulkan Ralat Sintaks SQL yang Disebabkan oleh Perkataan Terpelihara Seperti 'pesanan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!