Menyelesaikan Masalah Ralat Sintaks MySQL PHP: Nama Jadual Terpelihara
Mencipta berbilang jadual dalam satu skrip PHP boleh membawa kepada ralat sintaks jika nama jadual bercanggah dengan perkataan simpanan MySQL. Ralat ini boleh mengelirukan, muncul sebagai masalah sintaks umum walaupun kod itu kelihatan betul.
Contohnya:
<code class="language-php">$sql = "CREATE TABLE `user` ( user_id INT UNSIGNED NOT NULL AUTO_INCREMENT, ... )"; $sql2 = "CREATE TABLE `order` ( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id INT UNSIGNED NOT NULL, ... FOREIGN KEY (user_id) REFERENCES `user` (user_id) )";</code>
Semasa mencipta jadual user
mungkin berjaya, penciptaan jadual order
selalunya gagal dengan ralat seperti:
<code>Error creating table: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id ' at line 1</code>
Penyelesaian: Melarikan Diri dari Perkataan Terpelihara
Masalah timbul kerana order
ialah perkataan simpanan MySQL. Untuk membetulkannya, sertakan perkataan simpanan yang digunakan sebagai nama jadual atau lajur dalam tanda belakang ( ` ). Kod yang diperbetulkan ialah:
<code class="language-php">$sql2 = "CREATE TABLE `order` ( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id INT UNSIGNED NOT NULL, ... FOREIGN KEY (user_id) REFERENCES `user` (user_id) )";</code>
Amalan Terbaik: Elakkan Perkataan Terpelihara
Pendekatan yang lebih baik ialah mengelak daripada menggunakan perkataan yang dikhaskan sepenuhnya. Pilih nama jadual dan lajur deskriptif yang tidak bertembung dengan kata kunci MySQL. Ini menghalang kemungkinan isu sintaks dan meningkatkan kebolehbacaan kod.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Sintaks Semasa Mencipta Jadual dengan Perkataan Terpelihara dalam Skrip MySQL PHP saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!