Selesaikan masalah SQLSTATE[42000] Ralat: Ralat Sintaks atau Pelanggaran Akses
Dalam kod anda, anda menghadapi ralat "SQLSTATE[42000]: Ralat sintaks atau pelanggaran akses" disebabkan penggunaan kata kunci simpanan sebagai nama lajur. Khususnya, nama lajur "dari" ialah kata kunci simpanan dalam SQL.
Penyelesaian:
Untuk menyelesaikan isu ini, anda perlu memetik nama lajur yang dikhaskan. Dalam MySQL, nama lajur dipetik menggunakan backticks (`). Oleh itu, baris bermasalah dalam kod anda harus diubah suai seperti berikut:
$sql = "INSERT INTO messages (`from`, `to`, `name`, `subject`, `message`) VALUES (:from, :to, :name, :subject, :message)";
Pertimbangan Tambahan:
Perhatikan bahawa "ke" juga merupakan kata kunci simpanan dalam SQL . Oleh itu, anda perlu memetiknya juga, menghasilkan baris yang diubah suai berikut:
$sql = "INSERT INTO messages (`from`, `to`, `name`, `subject`, `message`) VALUES (:from, :to, :name, :subject, :message)";
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat Sintaks SQLSTATE[42000] Menggunakan Kata Kunci Terpelihara dalam Nama Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!