Ralat Sintaks PDO: "Anda Mempunyai Ralat dalam Sintaks SQL Anda"
Apabila menjalankan pertanyaan SQL dengan PDO, anda mungkin menghadapi ralat "SQLSTATE[42000]: Ralat sintaks atau pelanggaran akses: 1064 Anda mempunyai ralat dalam SQL anda sintaks." Ralat ini sering berlaku apabila kata kunci yang dikhaskan digunakan sebagai nama lajur tanpa petikan yang betul.
Contoh yang disediakan menggunakan nama lajur "dari" dalam pernyataan INSERT. "dari" ialah kata kunci terpelihara dalam SQL dan mesti dipetik menggunakan tanda belakang (`).
$sql = "INSERT INTO messages (`from`, `to`, `name`, `subject`, `message`) VALUES (:from, :to, :name, :subject, :message)";
Selain itu, "kepada" juga merupakan kata kunci terpelihara dan harus dipetik juga.
$sql = "INSERT INTO messages (`from`, `to`, `name`, `subject`, `message`) VALUES (:from, :to, :name, :subject, :message)";
Pilihan lain ialah menamakan semula lajur untuk mengelak daripada menggunakan kata kunci simpanan. Sebagai contoh, bukannya "dari", anda boleh menggunakan "pengirim" atau "from_email."
Menamakan semula lajur atau memetik kata kunci yang dikhaskan harus menyelesaikan ralat sintaks dan membenarkan pertanyaan untuk dilaksanakan dengan jayanya.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan 'SQLSTATE[42000]: Ralat sintaks atau pelanggaran akses: 1064 Anda mempunyai ralat dalam sintaks SQL anda' dalam PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!