Version complète: sur le forum Webmaster Hub : Insertion dans la base de donnée
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
adetag
Bonjour,

C'est mon premier post ici j'espere que je suis au bon topic smile.gif

J'ai un souci avec un INSERT dont voici le code
CODE
        mysql_query("INSERT INTO ben_membres (`pseudo`, `mdp`, `mail`,
        `nbpost`, `valid`, `temps`, `tempspost`, `rang`, `avatar`,
        `localisation`, `www`, `mp`, `co`, `gmt`, `he`, `sign`, `signaff`,
        `rangspec`, `afflist`)
        VALUES('".$nom_ben."', '".$mdp."','".$mail."',
        '0','0','".time()."',0,0,'','','',0,0,0,0,0,0,0,0")or die(mysql_error());
        mysql_query("UPDATE benevole SET valider= 1 WHERE id_benevole=".$_GET['valider'] );

Mais voila j'ai une erreur qui s'affiche:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6

Je ne voit pas d'ou cela vient wacko.gif
La table dans laquelle je veut rentrer les données est une table du forum softBB, est-il possible qu'il y es tune protection de leur part? r_question6161.gif

Merci et bonne journée
cognotte
Tu pourrais donner la structure la table svp ?

Sinon il me semble que tu peut remplace time() qui est du php par la commande SQL : NOW()
adetag
`id` int(11) NOT NULL auto_increment,
`pseudo` varchar(64) NOT NULL,
`mdp` varchar(32) NOT NULL,
`mail` varchar(128) NOT NULL,
`nbpost` int(11) default '0',
`valid` tinyint(4) default '0',
`temps` int(11) default '0',
`tempspost` int(11) default '0',
`rang` tinyint(4) default '0',
`avatar` varchar(128) default NULL,
`localisation` varchar(64) default NULL,
`www` varchar(128) default NULL,
`mp` int(11) default '0',
`co` int(11) default '0',
`gmt` decimal(4,1) default '0.0',
`he` tinyint(4) default '0',
`sign` varchar(255) default NULL,
`signaff` tinyint(4) default '0',
`rangspec` tinyint(4) default '0',
`afflist` tinyint(4) default '0',
PRIMARY KEY (`id`)


Voila la structure ma table j'espere qu'il y a tous les renseignements wink.gif
ps: je met time() car j'utilise la requête dans une page web wink.gif
ezazea
L'instruction que vous que vous essayez d'exécuter est la suivante:

CODE
"INSERT INTO ben_membres (`pseudo`, `mdp`, `mail`,
        `nbpost`, `valid`, `temps`, `tempspost`, `rang`, `avatar`,
        `localisation`, `www`, `mp`, `co`, `gmt`, `he`, `sign`, `signaff`,
        `rangspec`, `afflist`)
        VALUES('"

En effet la chaîne est située entre les délimiteurs " et "
Si les guillemets doubles sont utilisés comme délimiteurs d'une chaîne, alors à l'intérieur de la chaîne, il faut utiliser des séquences d'échappements \".

Mais dans votre cas, les guillemets ne sont même pas obligatoires:
CODE
$temps=time();
mysql_query("INSERT INTO ben_membres (`pseudo`, `mdp`, `mail`,
        `nbpost`, `valid`, `temps`, `tempspost`, `rang`, `avatar`,
        `localisation`, `www`, `mp`, `co`, `gmt`, `he`, `sign`, `signaff`,
        `rangspec`, `afflist`)
        VALUES('nom_ben', '$mdp','$mail',
        '0','0','$temps',0,0,'','','',0,0,0,0,0,0,0,0")or die(mysql_error());
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.