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());
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. 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
  2. Yoan Messages postés 11905 Statut Modérateur 2 356
     
    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
  3. 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
  4. Yoan Messages postés 11905 Statut Modérateur 2 356
     
    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
    1. fakharos
       
      slt, je fait le modification et mainat je cette message :
      Erreur de syntaxe près de '' à la ligne 1
      0
      1. Yoan Messages postés 11905 Statut Modérateur 2 356 > 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Yoan Messages postés 11905 Statut Modérateur 2 356
     
    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
  7. 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
  8. Yoan Messages postés 11905 Statut Modérateur 2 356
     
    Tu as essayé laquelle de solution ? Qu'as-tu tapé comme commandes ?
    Quel est la structure de la base maintenant ?
    -1