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!