Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Pernyataan INSERT MySQL Saya Membuang Ralat \"Column Count Mismatch\"?

Mengapa Pernyataan INSERT MySQL Saya Membuang Ralat \"Column Count Mismatch\"?

Patricia Arquette
Patricia Arquetteasal
2024-10-31 23:25:28749semak imbas

Why Does My MySQL INSERT Statement Throw a

Ketakpadanan Kiraan Lajur dalam MySQL INSERT

Ralat "Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1" menunjukkan percanggahan antara bilangan lajur dalam jadual pangkalan data dan bilangan nilai yang disediakan dalam pernyataan INSERT.

Dalam kod yang disediakan, percubaan dibuat untuk memasukkan nilai ke dalam jadual bernama "dbname" menggunakan pernyataan INSERT. Pertanyaan menyenaraikan 9 lajur ("id", "Nama", "Penerangan", "shortDescription", "Ramuan", "Kaedah", "Panjang", "tarikhTambah" dan "Nama Pengguna"), tetapi hanya 8 nilai disediakan dalam klausa VALUES. Secara khususnya, nilai "Kaedah" tiada.

Ketidakpadanan antara kiraan lajur dan kiraan nilai ini membawa kepada ralat. Untuk menyelesaikannya, pastikan pertanyaan mengandungi bilangan lajur dan nilai yang betul. Dalam kes ini, tambahkan nilai untuk lajur "Kaedah" sebelum melaksanakan pernyataan INSERT.

Berikut ialah kod yang diubah suai dengan nilai yang tiada ditambah:

<code class="php">$query = sprintf("INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
    mysql_real_escape_string($name),
    mysql_real_escape_string($description),
    mysql_real_escape_string($shortDescription),
    mysql_real_escape_string($ingredients),
    mysql_real_escape_string($method), // Method value added
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));</code>

Dengan memberikan nombor yang betul daripada nilai untuk lajur dalam pernyataan INSERT, ralat boleh dielakkan dan data boleh berjaya dimasukkan ke dalam pangkalan data.

Atas ialah kandungan terperinci Mengapa Pernyataan INSERT MySQL Saya Membuang Ralat \"Column Count Mismatch\"?. 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