Cara Menyelesaikan "Column Count Doesn't Match Value Count at Row 1" Ralat dalam PHP dan MySQL
Apabila cuba memasukkan data ke dalam pangkalan data MySQL menggunakan PHP, anda mungkin menghadapi ralat "Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1." Ralat ini menunjukkan bahawa bilangan nilai yang anda cuba masukkan tidak sepadan dengan bilangan lajur yang ditakrifkan dalam jadual.
Untuk menyelesaikan isu ini, semak semula kod yang mana ralat itu berasal. Dalam coretan kod yang disediakan:
$query = sprintf("INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%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($image), mysql_real_escape_string($length), mysql_real_escape_string($dateAdded), mysql_real_escape_string($username));
Anda telah menentukan 9 medan dalam pernyataan INSERT, tetapi hanya memberikan nilai untuk 8 daripadanya. Nilai yang hilang nampaknya untuk medan "Kaedah". Untuk menyelesaikan isu ini, anda perlu menambah nilai untuk medan "Kaedah".
Pastikan anda telah melepaskan semua nilai dengan betul untuk mengelakkan suntikan SQL. Anda boleh menggunakan fungsi mysql_real_escape_string untuk melepaskan nilai.
Dengan memberikan nilai untuk semua lajur yang ditakrifkan dalam jadual, anda akan dapat menyelesaikan ralat "Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1" dan berjaya memasukkan data ke dalam pangkalan data MySQL anda.
Atas ialah kandungan terperinci Mengapa Pernyataan INSERT MySQL PHP Saya Melemparkan Ralat \'Kiraan Lajur Tidak Padan dengan Kiraan Nilai pada Baris 1\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!