Php / mysql

Résolu/Fermé
thomas.r Messages postés 79 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 29 janvier 2009 - 16 juil. 2008 à 17:35
thomas.r Messages postés 79 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 29 janvier 2009 - 17 juil. 2008 à 14:33
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

3 réponses

croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
16 juil. 2008 à 17:40
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
thomas.r Messages postés 79 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 29 janvier 2009 2
16 juil. 2008 à 17:50
Bonjour,

Ca marche ! Bravo !

Merci !
0
thomas.r Messages postés 79 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 29 janvier 2009 2
17 juil. 2008 à 10:20
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
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
17 juil. 2008 à 14:24
Ajoute juste avant la ligne du mysql_query :
<code>
echo '<br>...' . $requete_accomodation . '...<br>';
</echo>

Qu'est-ce-que ça donne ?
0
thomas.r Messages postés 79 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 29 janvier 2009 2
17 juil. 2008 à 14:33
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