Ralat Sintaks SQL: Membetulkan Dari dan Ke Kata Kunci Menggunakan Backticks
Apabila bekerja dengan pertanyaan SQL menggunakan PDO, adalah penting untuk memastikan bahawa nama lajur jangan bercanggah dengan kata kunci terpelihara. Dalam kes anda, anda telah menghadapi ralat "SQLSTATE[42000]: Ralat sintaks atau pelanggaran akses" kerana anda menggunakan 'dari' dan 'ke' sebagai nama lajur, yang merupakan kata kunci simpanan dalam SQL.
Untuk menyelesaikan isu ini, sertakan 'dari' dan 'ke' dalam tanda belakang ( ) apabila merujuknya sebagai nama lajur. Backticks digunakan dalam MySQL untuk memetik nama lajur dan menghalangnya daripada ditafsirkan sebagai kata kunci.
Pertanyaan anda yang diubah suai harus kelihatan seperti berikut:
INSERT INTO messages (`from`, `to`, name, subject, message) VALUES (:from, :to, :name, :subject, :message)
Selain itu, anda perlu menamakan semula kekunci 'dari' dan 'ke' dalam tatasusunan $vals anda untuk menggambarkan lajur yang dikemas kini names:
$vals = array( ':from' => $email, ':to' => $recipient, ':name' => $name, ':subject' => $subject, ':message' = >$message );
Dengan membuat pelarasan ini, anda akan berjaya melaksanakan pertanyaan SQL anda tanpa menghadapi ralat sintaks.
Atas ialah kandungan terperinci Ralat Sintaks SQL: Bagaimana untuk Membetulkan Nama Lajur `dari` dan `ke` dalam Pertanyaan PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!