Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich in meiner PHP-MySQL-INSERT-Abfrage die Fehlermeldung „Spaltenanzahl stimmt nicht mit Wertanzahl überein'?
Beim Versuch, Daten mit PHP in eine MySQL-Datenbank einzufügen, kann der Fehler auftreten:
Column count doesn't match value count at row 1
Dieser Fehler tritt auf, wenn die Anzahl der Werte, die Sie in eine Tabelle einfügen möchten, nicht mit der Anzahl der darin definierten Spalten übereinstimmt Tabelle.
Den Fehler verstehen
In Ihrem speziellen Fall wird der Fehler höchstwahrscheinlich durch die im bereitgestellten Code angezeigte Abfrage verursacht:
$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($method), mysql_real_escape_string($length), mysql_real_escape_string($dateAdded), mysql_real_escape_string($username));
Fehler beheben
Um den Fehler zu beheben, müssen Sie den Code und die Datenbankdefinition überprüfen Identifizieren Sie den fehlenden Wert. In diesem Fall scheinen Sie 9 Spalten im INSERT deklariert zu haben Aussage:
Allerdings Die eingefügten Werte machen nur 8 Werte aus (da die Bildspalte nicht in der Liste enthalten ist).
Lösung
Um den Fehler zu beheben, können Sie entweder hinzufügen Geben Sie den fehlenden Wert für die Spalte „Methode“ ein oder überarbeiten Sie die Datenbankdefinition, damit sie mit der Anzahl der Werte übereinstimmt, die Sie einfügen. Wenn Sie die erste Option wählen, aktualisieren Sie die Abfrage wie folgt:
$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));
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meiner PHP-MySQL-INSERT-Abfrage die Fehlermeldung „Spaltenanzahl stimmt nicht mit Wertanzahl überein'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!