L'erreur Column count doesn't match value count at row 1

Noter ce cours :

Liens sponsorisés :

Cette erreur se produit lorsque vous tentez d'insérer une requête alors que vous n'avez pas spécifié le nombre de champs corrects lors de l'insertion. Si votre table comporte par exemple 4 champs, vous devez spécifier une valeur pour chacun des champs dans la requête. Mettons que votre table comporte trois champs et ait cette structure :

Structure de la table exemple
Structure de la table membres

Prenons ensuite l'exemple d'une requête qui donne une erreur, sachant que nous souhaitons insérer des données dans la table :

INSERT INTO table VALUES(1,5)

Cette requête donne une erreur car nous avons seulement spécifié deux champs dans l'insertion de valeurs, alors que la table en comporte trois. Pour résoudre ce problème, nous avons plusieurs solutions :

Spécifier le nombre de champs total dans la requête

Même si on ne souhaite pas attribuer de valeur à certains champs (ou alors leur valeur par défaut), on peut procéder de cette façon. La requête devient la suivante :

INSERT INTO table VALUES('','','')

Spécifier uniquement les champs à remplir, en les nommant

On peut également spécifier quels champs seront impactés pour le remplissage, les autres (non renseignés) prendront leur valeur par défaut. La requête peut prendre alors la forme suivante, sachant que, ici, le champ note n'étant plus renseigné, il prendra sa valeur par défaut :

INSERT INTO table(id_source,id_voteur) VALUES('','')

Dans notre exemple seuls les champs id_source et id_voteur se verront attribuer la valeur de notre choix (ici la valeur par défaut).

N'insérer que les valeurs par défaut

Dans le cas où vous avez spécifié pour tous les champs de votre table une valeur par défaut, vous pouvez insérer toujours les mêmes valeurs (les valeurs par défaut) grâce à la requête suivante :

INSERT INTO table() VALUES()

Vous ne devriez plus rencontrer ce problème suite à la lecture de cet article, dans le cas contraire vous pouvez demander de l'aide sur le forum PHP. N'hésitez pas non plus à consulter mon cours sur comment insérer des données avec MySQL

Vous avez aimé cet article intitulé L'erreur Column count doesn't match value count at row 1 ? Partagez-le !
Vulgarisation-informatique.com
Cours en informatique & tutoriels