Maison > développement back-end > tutoriel php > Pourquoi est-ce que j'obtiens l'erreur « Incompatibilité du nombre de colonnes à la ligne 1 » dans ma requête MySQL ?

Pourquoi est-ce que j'obtiens l'erreur « Incompatibilité du nombre de colonnes à la ligne 1 » dans ma requête MySQL ?

Patricia Arquette
Libérer: 2024-10-27 10:20:31
original
298 Les gens l'ont consulté

Why am I getting the

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal