Erreur PHP, MySQL : incompatibilité du nombre de colonnes à la ligne 1
Cette erreur : "Le nombre de colonnes ne correspond pas au nombre de valeurs à la ligne 1 ", indique un écart entre le nombre de colonnes dans lesquelles vous essayez d'insérer des données et le nombre réel de valeurs fournies.
Dans l'extrait de code fourni, vous essayez d'insérer des données dans une table avec 9 colonnes (id, Nom, Description, shortDescription, Ingrédients, Méthode, Longueur, dateAdded, Nom d'utilisateur) utilisant 8 valeurs ($name, $description, $shortDescription, $ingredients, $method, $username, $length, $dateAdded).
Cause de l'erreur :
L'erreur se produit car il y a une incompatibilité entre le nombre de colonnes définies dans la requête INSERT et le nombre de valeurs qui lui sont transmises . Dans ce cas, la requête attend 9 valeurs, mais seulement 8 sont fournies, à l'exclusion de la colonne "image".
Solution :
Pour résoudre l'erreur, assurez-vous que le nombre de valeurs correspond au nombre de colonnes dans la requête INSERT. Vous pouvez soit ajouter la valeur manquante pour la colonne "image", soit la supprimer de la liste des colonnes dans lesquelles vous êtes inséré.
Modification du code :
Option 1 : Ajouter la valeur manquante
<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 : Supprimer la colonne "Image"
<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>
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!