Column count doesn't match value count at row 1
Bonjour j'ai une petite erreur sur un formulaire d'inscription.
Lorsque je valide mon formulaire il me renvoie une erreur sql
Erreur SQL !INSERT INTO membre VALUES("", "rrrr", "rrrr","rrrr@rrr.fr","http//www.","1","18 05 2008, 12:06 ","88.160.100.14")
Column count doesn't match value count at row 1
Voici mon bout de code php:
if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string($_POST['pass']).'","'.mysql_escape_string($_POST['email']).'","' . $_POST["site_web"] . '","' . $_POST["news"] . '","'.date("d m Y, H:i ").'","'.$ip.'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
Si vous avez une petite idée
merci
Quel est le create de la table membre ?
Je te conseil aussi de ne pas utiliser l'opérateur de concaténation pour créer ta chaîne :
<?php
$sql = sprintf("insert into membre values "
. "('%s','%s','%s','%s','%s','%s','%s')"
, mysql_real_escape_string($_POST['login'])
, mysql_real_escape_string($_POST['pass'])
, mysql_real_escape_string($_POST['email'])
, mysql_real_escape_string($_POST["site_web"])
, mysql_real_escape_string($_POST["news"])
, date("d m Y, H:i ")
, $ip) ;
$ok = mysql_query($sql) ;
if(!$ok)
/* Gestion de l'erreur*/ ;
?>
Attention à ne pas confondre l'usage de l'apostrophe et de la double quote !
Bien qu'en XML/HTML elles soient équivalentes, en PHP elles n'entraînent pas le même comportement, ainsi qu'en SQL.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
D'accord je te remercie LupusMic.
voici à quoi ressemble ma table "membre" :
CREATE TABLE `membre` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(50) NOT NULL,
`pass` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`site_web` varchar(70) default NULL,
`New` enum('0','1') NOT NULL,
`Date_inscription` varchar(20) NOT NULL,
`ip` varchar(16) NOT NULL,
`Date_connection` varchar(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=37 DEFAULT CHARSET=latin1 PACK_KEYS=1 AUTO_INCREMENT=37 ;
Vu que tu ne renseigne pas id dans ta requête d'insertion, il faut nommer les propriétés que tu veux renseigner. Le problème, c'est que j'ai l'impression que tu la requête d'insertion n'est pas très cohérente avec la structure de la table.
Tu devrais mettre le champ « New » en default true.
Pourquoi Date_inscription est un champs « chaîne de caractère » plutôt qu'un champs « date » ? Pareil pour « Date_connection ».
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Merci LupusMic
Je viens juste de trouver.
Je viens de rajouter une date en plus pour la valeur "Date_connection" (dans la table membre).
if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string($_POST['pass']).'","'.mysql_escape_string($_POST['email']).'","' . $_POST["site_web"] . '","' . $_POST["news"] . '","'.date("d m Y, H:i ").'","'.$ip.'","'.date("d m Y, H:i ").'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
C'est vrai que ce n'est pas trés cohérent je vais essayer d'optimiser cela.
Pour les champs date j'ai un peu bidouillé, j'avais essayé de mettre le champ date à la place d'une chaîne de caractère mais ca ne fonctionner pas.
Je vais réessayer pour optimiser tous cela.
Encore merci
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: