PHP-, MySQL-Fehler: Spaltenanzahl stimmt in Zeile 1 nicht überein
Dieser Fehler: „Die Spaltenanzahl stimmt nicht mit der Wertanzahl in Zeile 1 überein.“ ", weist auf eine Diskrepanz zwischen der Anzahl der Spalten, in die Sie Daten einfügen möchten, und der tatsächlichen Anzahl der bereitgestellten Werte hin.
Im bereitgestellten Codeausschnitt versuchen Sie, Daten in eine Tabelle einzufügen 9 Spalten (id, Name, Beschreibung, shortDescription, Zutaten, Methode, Länge, dateAdded, Benutzername) mit 8 Werten ($name, $description, $shortDescription, $ingredients, $method, $username, $length, $dateAdded).
Fehlerursache:
Der Fehler tritt auf, weil zwischen der Anzahl der in der INSERT-Abfrage definierten Spalten und der Anzahl der an sie übergebenen Werte eine Diskrepanz besteht . In diesem Fall erwartet die Abfrage 9 Werte, es werden jedoch nur 8 bereitgestellt, mit Ausnahme der Spalte „Bild“.
Lösung:
Um den Fehler zu beheben, stellen Sie sicher dass die Anzahl der Werte mit der Anzahl der Spalten in der INSERT-Abfrage übereinstimmt. Sie können entweder den fehlenden Wert für die Spalte „Bild“ hinzufügen oder ihn aus der Liste der Spalten entfernen, in die eingefügt wird.
Codeänderung:
Option 1: Fügen Sie den fehlenden Wert hinzu
<code class="php">$query = sprintf("INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Image, Length, dateAdded, Username) VALUES ('', '%s', '%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), '', // Placeholder for empty 'image' value mysql_real_escape_string($length), mysql_real_escape_string($dateAdded), mysql_real_escape_string($username));</code>
Option 2: Entfernen Sie die Spalte „Bild“
<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), mysql_real_escape_string($length), mysql_real_escape_string($dateAdded), mysql_real_escape_string($username));</code>
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meiner MySQL-Abfrage den Fehler „Kolumne Spaltenanzahl in Zeile 1'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!