Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan 'SQLSTATE[42000]: Ralat sintaks atau pelanggaran akses: 1064 Anda mempunyai ralat dalam sintaks SQL anda' dalam PDO?

Bagaimana untuk Membetulkan 'SQLSTATE[42000]: Ralat sintaks atau pelanggaran akses: 1064 Anda mempunyai ralat dalam sintaks SQL anda' dalam PDO?

Linda Hamilton
Linda Hamiltonasal
2024-12-31 09:13:20502semak imbas

How to Fix

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn