Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens une erreur « Le nombre de colonnes ne correspond pas au nombre de valeurs à la ligne 1 » dans mon instruction MySQL INSERT ?

Pourquoi est-ce que j'obtiens une erreur « Le nombre de colonnes ne correspond pas au nombre de valeurs à la ligne 1 » dans mon instruction MySQL INSERT ?

DDD
DDDoriginal
2024-12-01 00:19:11865parcourir

Why am I getting a

Erreur PHP, MySQL : écart dans le nombre de colonnes

L'erreur « Le nombre de colonnes ne correspond pas au nombre de valeurs à la ligne 1 » indique une incompatibilité entre le nombre de colonnes spécifié dans une instruction SQL INSERT et le nombre de valeurs fournies.

Dans ce cas précis, vous avez ce qui suit code :

$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($image),
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));

L'instruction SQL contient 9 colonnes : id, Name, Description, shortDescription, Ingrédients, Méthode, Longueur, dateAdded et Nom d'utilisateur. Cependant, vous ne fournissez que 8 valeurs : $name, $description, $shortDescription, $ingredients, $length, $dateAdded, $username et $method.

Pour résoudre l'erreur, vous devez ajouter le valeur manquante pour la colonne Méthode. Assurez-vous que vous capturez les données de méthode à partir de votre entrée. Une fois que vous avez fait cela, votre requête devrait être :

$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));

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!

Déclaration:
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