Maison > Article > développement back-end > Pourquoi mon instruction MySQL INSERT génère-t-elle une erreur « Incompatibilité du nombre de colonnes » ?
Incompatibilité du nombre de colonnes dans MySQL INSERT
L'erreur "Le nombre de colonnes ne correspond pas au nombre de valeurs à la ligne 1" indique un écart entre le nombre de colonnes dans une table de base de données et le nombre de valeurs fournies dans une instruction INSERT.
Dans le code fourni, une tentative est faite pour insérer des valeurs dans une table nommée "dbname" à l'aide de l'instruction INSERT. La requête répertorie 9 colonnes ("id", "Name", "Description", "shortDescription", "Ingredients", "Method", "Length", "dateAdded" et "Username"), mais seules 8 valeurs sont fournies. dans la clause VALEURS. Plus précisément, la valeur « Méthode » est manquante.
Cette inadéquation entre le nombre de colonnes et le nombre de valeurs conduit à l'erreur. Pour le résoudre, assurez-vous que la requête contient le nombre correct de colonnes et de valeurs. Dans ce cas, ajoutez la valeur de la colonne "Méthode" avant d'exécuter l'instruction INSERT.
Voici le code modifié avec la valeur manquante ajoutée :
<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>
En fournissant le bon numéro de valeurs pour les colonnes dans l'instruction INSERT, l'erreur peut être évitée et les données peuvent être insérées avec succès dans la base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!