Ralat Sintaks SQL: "Ralat Perkataan Terpelihara (daripada, kepada)"
Menghadapi ralat "SQLSTATE[42000]: Ralat sintaks atau pelanggaran akses: 1064 Anda mempunyai ralat dalam sintaks SQL anda" apabila menggunakan PDO dalam PHP boleh mengecewakan. Satu kemungkinan punca ralat ini ialah penggunaan perkataan terpelihara dalam nama lajur tanpa petikan yang betul.
Dalam SQL, perkataan tertentu seperti "dari" dan "kepada" ialah kata kunci simpanan dan tidak boleh digunakan sebagai nama lajur tanpa memetik. Ini diserlahkan dalam mesej ralat sebagai "semak manual yang sepadan dengan versi pelayan MySQL anda untuk sintaks yang betul untuk digunakan berhampiran 'dari, kepada, nama, subjek, mesej) NILAI".
Untuk menyelesaikan isu ini , anda perlu memetik perkataan yang dikhaskan menggunakan backtick (`). Dalam MySQL, ini bermakna menukar kod kepada:
$sql = "INSERT INTO messages (`from`, `to`, `name`, `subject`, `message`) VALUES (:from, :to, :name, :subject, :message)";
Dengan memetik perkataan yang dikhaskan, anda memberitahu penghurai SQL bahawa anda berhasrat untuk menggunakannya sebagai nama lajur dan bukan sebagai kata kunci. Ini sepatutnya menghapuskan ralat sintaks dan membenarkan pertanyaan untuk dilaksanakan dengan jayanya.
Ingat, secara amnya adalah amalan yang baik untuk mengelak daripada menggunakan perkataan simpanan sebagai nama lajur sama sekali. Pertimbangkan untuk menamakan semula lajur untuk mengelakkan kemungkinan konflik sintaks pada masa hadapan.
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Ralat Perkataan Tempahan' dalam MySQL Apabila Menggunakan `dari` dan `ke` sebagai Nama Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!