Ralat Sintaks Akibat Menggunakan Perkataan Terpelihara sebagai Nama Jadual atau Lajur dalam MySQL
Masalahnya
Apabila cuba melaksanakan pernyataan INSERT, MySQL mengembalikan ralat yang perlu dibayar kepada penggunaan 'kunci' sebagai nama lajur, yang bercanggah dengan perkataan terpelihara. MySQL menganggap kata-kata simpanan sebagai sintaks khas, jadi menggunakan satu sebagai pengecam boleh menyebabkan kekeliruan. Perkataan terpelihara seperti 'kunci' memerlukan pengendalian khas untuk mengelakkan jenis ralat ini.
Penyelesaian
Dua penyelesaian wujud:
1 . Menamakan semula Pengecam
Pendekatan yang disyorkan adalah untuk mengelak daripada menggunakan perkataan terpelihara sebagai pengecam di tempat pertama. Ini menghapuskan risiko ralat dan memastikan mudah alih antara dialek SQL yang berbeza, yang mungkin mempunyai konvensyen berbeza untuk mengecam pengecam.
2. Menggunakan Backticks
Jika penamaan semula tidak dapat dilaksanakan, pengecam yang bermasalah boleh dibalut dengan backticks. Backticks mengarahkan MySQL untuk merawat pengecam yang disertakan sebagai literal, membolehkan anda menggunakan perkataan terpelihara sebagai nama lajur atau jadual tanpa konflik. Contohnya:
INSERT INTO user_details (username, location, `key`)
VALUES ('Tim', 'Florida', 42)
Salin selepas log masuk
Dalam contoh ini, lajur kunci disertakan dalam tanda belakang, menyelesaikan ralat sintaks. Adalah penting untuk ambil perhatian bahawa jika pengecam anda lebih kompleks atau mengandungi aksara khas, pelarian yang sesuai mungkin diperlukan dalam tanda belakang.
Atas ialah kandungan terperinci Mengapa MySQL Melemparkan Ralat Sintaks Apabila Menggunakan Perkataan Rizab Seperti 'kunci' sebagai Nama Jadual atau Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!