web-dev-qa-db-fra.com

Erreur PHP et MySQL: le nombre de colonnes ne correspond pas au nombre de valeurs à la ligne 1

Je reçois cette erreur:

Column count doesn't match value count at row 1

A partir du code suivant:

$name = $_GET['name'];
$description = $_GET['description'];
$shortDescription = $_GET['shortDescription'];
$ingredients = $_GET['ingredients'];
$method = $_GET['method'];
//$image = $_GET['image'];
$username = $_GET['username'];
$length = $_GET['length'];
$dateAdded = uk_date();
$conn = mysql_connect('localhost', 'dbname', 'pass');
mysql_select_db('dbname');
$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));

    $result = mysql_query($query) or die(mysql_error());

Qu'est-ce que l'erreur signifie?

46
max_

Vous avez 9 champs répertoriés, mais seulement 8 valeurs. Essayez d'ajouter la méthode.

Le nombre de paramètres de colonne dans votre requête d'insertion est de 9, mais vous n'avez fourni que 8 valeurs.

INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%s', '%s', '%s', '%s', '%s', '%s')

La requête doit omettre le paramètre "id", car il est généré automatiquement (ou devrait l'être de toute façon):

INSERT INTO dbname (Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%s', '%s', '%s', '%s', '%s', '%s')

Bonne chance!

13
Tharsan

Votre requête a 8 ou éventuellement 9 variables, c.-à-d. Nom, Description etc. Mais les valeurs, ces choses ---> '', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", seulement 7, le nombre de variables doit être identique à celui des valeurs.

J'ai eu le même problème mais je l'ai compris. Espérons que cela fonctionnera également pour vous.

6
MCForty