Erreur sql

fakharos Messages postés 33 Statut Membre -  
Yoan Messages postés 11905 Statut Modérateur -
Bonjour,

Je me lance dans le php et j'ai l'erreur :

Erreur de syntaxe près de 'DESC, PRIX, DATE, Date_Limite, VALID) VALUES ('ANN_1501820080924' à la ligne 1

voila la contenu de requete :

include('config/config.php'); //inclure la fonction login_unique
$add = sprintf("INSERT INTO '$Table_Annonces' VALUES ('$CODE', '$PSEUDO', '$CATEG', '$S_CATEG', '$SS_CATEG', '$PAYS', '$REGION', '$DEPART', '$CODEP', '$CONTACT', '$MAIL', '$PHONE', '$CPHONE', '$TITRE', '$DESC', '$PRIX', '$DATE', '$Date_Limite', '$VALID')");
mysql_select_db($database, $lien);
mysql_query($add, $lien) or die(mysql_error());

7 réponses

fakharos
 
Bonjour,

Voila structure de table :
CREATE TABLE `swiss_annonces` (
`CODE` varchar(200) character set ascii NOT NULL default '',
`PSEUDO` varchar(20) NOT NULL default '',
`CATEG` varchar(50) NOT NULL default '',
`S_CATEG` varchar(15) NOT NULL default '',
`SS_CATEG` varchar(10) NOT NULL default '',
`PAYS` varchar(20) NOT NULL default '',
`REGION` varchar(20) NOT NULL default '',
`DEPART` varchar(20) NOT NULL default '',
`CODEP` varchar(10) NOT NULL default '',
`CONTACT` varchar(20) NOT NULL default '',
`MAIL` varchar(50) NOT NULL default '',
`PHONE` varchar(14) NOT NULL default '',
`CPHONE` varchar(14) NOT NULL default '',
`TITRE` varchar(50) NOT NULL default '',
`DET` text NOT NULL,
`PRIX` varchar(20) NOT NULL default '',
`DATE` varchar(20) NOT NULL default '',
`Date_Limite` varchar(30) NOT NULL default '',
`VALID` char(2) NOT NULL default '0',
PRIMARY KEY (`CODE`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

et voila la requete :

include('config/config.php'); //inclure la fonction login_unique
$add_user = sprintf("INSERT INTO '$Table_Annonces' VALUES ('".$CODE."', '".$PSEUDO."', '".$CATEG."', '".$S_CATEG."', '".$SS_CATEG."', '".$PAYS."', '".$REGION."', '".$DEPART."', '".$CODEP."', '".$CONTACT."', '".$MAIL."', '".$PHONE."', '".$CPHONE."', '".$TITRE."', '".$TIT."', '".$PRIX."', '".$DATE."', '".$Date_Limite."', '".$VALID."')");
mysql_select_db($database, $lien);
mysql_query($add_user, $lien) or die(mysql_error());
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Il y a un truc vachement drôle, c'est que MySQL semble opérer sur une table DESC alors qu'elle n'existe pas et qu'il a lui-même "ajouté" cette partie du code, essaie de remplacer l'INSERT par ceci :
"INSERT INTO '$Table_Annonces'(`CODE`,`PSEUDO`,`CATEG`,`S_CATEG`,`SS_CATEG`,`PAYS`,`REGION`,`DEPART`,`CODEP`,`CONTACT`,`MAIL`,`PHONE`,`CPHONE`,`TITRE`,`DET`,`PRIX`,`DATE`,`Date_Limite`,`VALID`) VALUES ('".$CODE."', '".$PSEUDO."', '".$CATEG."', '".$S_CATEG."', '".$SS_CATEG."', '".$PAYS."', '".$REGION."', '".$DEPART."', '".$CODEP."', '".$CONTACT."', '".$MAIL."', '".$PHONE."', '".$CPHONE."', '".$TITRE."', '".$TIT."', '".$PRIX."', '".$DATE."', '".$Date_Limite."', '".$VALID."')


A moins que le DESC veuille ici dire autre chose, mais je ne vois pas quoi.
0
fakharos Messages postés 33 Statut Membre
 
J ai fait quesque te ma dit mais j ai un autre erreur,

Erreur de syntaxe près de ''swiss_annonces'(`CODE`,`PSEUDO`,`CATEG`,`S_CATEG`,`SS_CATEG`,`P' à la ligne 1
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
En abusant de la concaténation on ne s'y retrouve plus. On va essayer de reprendre proprement :
"INSERT INTO '$Table_Annonces'('CODE','PSEUDO','CATEG','S_CATEG','SS_CATEG','PAYS','REGION','DEPART','CODEP','CONTACT','MAIL','PHONE','CPHONE','TITRE','DET','PRIX','DATE','Date_Limite','VALID') VALUES ('$CODE', '$PSEUDO', '$CATEG', '$S_CATEG', '$SS_CATEG', '$PAYS', '$REGION', '$DEPART', '$CODEP', '$CONTACT', '$MAIL', '$PHONE', '$CPHONE', '$TITRE', '$TIT', '$PRIX', '$DATE', '$Date_Limite', '$VALID')"

Aussi j'ai du mal à comprendre l'intérêt du sprintf ?
0
fakharos
 
slt, je fait le modification et mainat je cette message :
Erreur de syntaxe près de '' à la ligne 1
0
Yoan Messages postés 11905 Statut Modérateur 2 332 > fakharos
 
Hem, ben oui il y a des simple quotes inutiles qui sont apparues au cours de la dé-concaténation. Désolé :D

"INSERT INTO $Table_Annonces(CODE,PSEUDO,CATEG,S_CATEG,SS_CATEG,PAYS,REGION,DEPART,CODEP,CONTACT,MAIL,PHONE,CPHONE,TITRE,DET,PRIX,DATE,Date_Limite,VALID) VALUES ('$CODE', '$PSEUDO', '$CATEG', '$S_CATEG', '$SS_CATEG', '$PAYS', '$REGION', '$DEPART', '$CODEP', '$CONTACT', '$MAIL', '$PHONE', '$CPHONE', '$TITRE', '$TIT', '$PRIX', '$DATE', '$Date_Limite', '$VALID')"
Si là ça marche pas je songe au suicide :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Yep,
DESC est un mot réservé, si possible change son nom
ALTER TABLE nom_table CHANGE "DESC" "nouveau_nom" VARCHAR(20);
Si tu ne peux pas, modifie ton INSERT afin d'indiquer tous les attributs et en plaçant DESC entre double quotes, ça devrait marcher :
INSERT INTO nom_table(attribut1, attribut2, attribut3, "DESC") VALUES('valeur1','valeur2','valeur3','valeur_desc');
-1
fakharos Messages postés 33 Statut Membre
 
Bonjour,
Merci pour votre reponse, mais toujours je le même problème.
Merci de m'idee c urgent.
-1
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Tu as essayé laquelle de solution ? Qu'as-tu tapé comme commandes ?
Quel est la structure de la base maintenant ?
-1