Php / mysql

Résolu
thomas.r Messages postés 79 Date d'inscription   Statut Membre -  
thomas.r Messages postés 79 Date d'inscription   Statut Membre -
Bonjour,

J'ai le message d'erreur :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
for the right syntax to use near 'sidence Belle Vue, RES,été,http://www.vaca...'at line 1

pour la requête suivante :

$requete_accomodation = mysql_query("INSERT INTO accomodation(idAccomodation, id_xml_accomodation, name_acc, type_acc, nb_stars,main_pict_type,main_pict_url) VALUES ( $idAccomodation, $id_xml_accomodation, $name_acc, $type_acc, $nb_stars,$main_pict_type,$main_pict_url) " ) or die( mysql_error() ) ;

avec la table accomodation défini comme telle :

CREATE TABLE IF NOT EXISTS `mydb3`.`Accomodation` (
`idAccomodation` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`id_xml` INT UNSIGNED NOT NULL ,
`name_acc` VARCHAR(250) NOT NULL ,
`type_acc` VARCHAR(45) NOT NULL ,
`nb_stars` TINYINT UNSIGNED NULL ,
`main_pict_type` VARCHAR(20) NOT NULL ,
`main_pict_url` VARCHAR(200) NOT NULL ,
PRIMARY KEY (`idAccomodation`) )
ENGINE = MyISAM ;

Pouvez vous s'il vous plait me dire où pourrait se trouver l'erreur en question ?

Merci
Configuration: Windows XP
Firefox 3.0

3 réponses

  1. croy Messages postés 457 Statut Membre 114
     
    Il est nécessaire d'encadrer les valeurs alphanumériques par des quotes.

    Ton code devient :

    $requete_accomodation = "INSERT INTO accomodation"
    	. "(idAccomodation, id_xml_accomodation, name_acc, type_acc, nb_stars,main_pict_type,main_pict_url)"
    	. " VALUES ( $idAccomodation, $id_xml_accomodation, '$name_acc', '$type_acc', $nb_stars,'$main_pict_type','$main_pict_url') ";
    
    0
    1. thomas.r Messages postés 79 Date d'inscription   Statut Membre 2
       
      Bonjour,

      Ca marche ! Bravo !

      Merci !
      0
    2. thomas.r Messages postés 79 Date d'inscription   Statut Membre 2
       
      Re-bonjour !

      Je m'étais enflammé un peu trop vite en fait parce qu'il y a encore une erreur. Le script et la requète a réussi à insérer 13 occurences mais pas le reste.
      après l'insertion de la 13 occurence dans la table, on a le message d'erreur suivant :
      You have an error in your SQL syntax; check the manual that corresponds to your Mysql server version for the right syntax use near 'Belle vue','résidence',",'été','http://topvacances...' at line 1

      Merci d'avance pour votre aide
      0
  2. croy Messages postés 457 Statut Membre 114
     
    Ajoute juste avant la ligne du mysql_query :
    <code>
    echo '<br>...' . $requete_accomodation . '...<br>';
    </echo>

    Qu'est-ce-que ça donne ?
    0
  3. thomas.r Messages postés 79 Date d'inscription   Statut Membre 2
     
    Bonjour,

    Merci pour ton aide mais on m'a déjà aidé pour résoudre le problème. En fait l'existence de " et ' dans les champs posaient problèmes, j'ai donc utilisé addslashes() pour éviter les conflits.

    Par contre j'ai posé la question suivante dans un message de titre SGBDD/Mysql :

    Quand on passe de son schéma en MPD à sql, on vient à créer des tables qui correspond à des
    associations et comporte donc dans le MPD, plusieurs clés primaires.

    Comment cela se passe t-il quand on crée la table dans Mysql ? Faut-il créer plusieurs clés primaires
    correspondants au clés primaires des entités mises en relation? Faut-il n'avoir qu'une seule clé primaire est un entier qui s'incrémente avec les clés primaires des entités mises en relation en propriété ?

    Merci d'avance pour votre aide.
    0