Page 1 sur 1

Encore apostrophe

Posté : 24 oct. 2008, 17:33
par Romuald632
Rebonjour,
J'ai résolu une partie de mon problème tut à l'heure, mais en avançant dans mon travail, je viens de voir qu'à nouveau un problème d'apostrophe survient lorsque je saisis du texte.
Alors je suppose qu'il s'agit encore d'un caractère échappé...
Voici le message d'erreur :
Erreur SQL !INSERT INTO webcam(idwebcam,continent,pays,sous_continent,ville,nom_webcam,lien_webcam,stat_visite,nom_critere) VALUES('','Europe','France','Europe de l\'Ouest','hdfsds','hs'','http://','','Villes')
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 'http://','','Villes')' at line 1
Merci

Posté : 24 oct. 2008, 17:42
par @rthur
Bonjour,

Avec un éditeur qui et fait la coloration syntaxique, tu verrais tout de suite qu'il y a un problème :
INSERT INTO webcam(idwebcam,continent,pays,sous_continent,ville,nom_webcam,lien_webcam,stat_visite,nom_critere) VALUES('','Europe','France','Europe de l\'Ouest','hdfsds','hs'','http://','','Villes') 
Pour éviter ces problèmes d'apostrophes non-échapées, utilises mysql_real_escape_string sur tous les champs texte de ta requêtes.

Posté : 24 oct. 2008, 17:47
par Romuald632
désolé je vois pas où mettre ce "mysql_real_escape_string"

Posté : 24 oct. 2008, 18:26
par Victor BRITO
désolé je vois pas où mettre ce "mysql_real_escape_string"
Dans le code PHP qui permet de réaliser la requête :
$sql = "INSERT INTO webcam(idwebcam,continent,pays,sous_continent,ville,nom_webcam,lien_webcam,stat_visite,nom_critere) VALUES('".mysql_real_escape_string('')."','".mysql_real_escape_string('Europe')."','".mysql_real_escape_string('France')."','".mysql_real_escape_string('Europe de l\'Ouest')."','".mysql_real_escape_string('hdfsds')."','".mysql_real_escape_string('hs')."','".mysql_real_escape_string('http://')."','".mysql_real_escape_string('')."','".mysql_real_escape_string('Villes')."')";

Posté : 27 oct. 2008, 12:52
par Romuald632
Bonjour,
Voici ce que j'ai mis :
$sql = "INSERT INTO webcam(idwebcam,continent,pays,sous_continent,ville,nom_webcam,lien_webcam,stat_visite,nom_critere) 
VALUES('".mysql_real_escape_string('')."','".mysql_real_escape_string('$continent')."','".mysql_real_escape_string('$pays')."','".mysql_real_escape_string('$sous_continent')."','".mysql_real_escape_string('$ville')."','".mysql_real_escape_string('$nom_webcam')."','".mysql_real_escape_string('$lien_webcam')."','".mysql_real_escape_string('')."','".mysql_real_escape_string('$nom_critere')."')";
Et quand je regarde ma BDD, j'ai tjs $...
Merci

Posté : 27 oct. 2008, 13:04
par Victor BRITO
Normal, tu as inséré les variables entre guillemets simples : elles ne sont donc pas interprétées. Ôte les guillemets simples comme suit :
$sql = "INSERT INTO webcam(idwebcam,continent,pays,sous_continent,ville,nom_webcam,lien_webcam,stat_visite,nom_critere)  
VALUES('".mysql_real_escape_string('')."','".mysql_real_escape_string($continent)."','".mysql_real_escape_string($pays)."','".mysql_real_escape_string($sous_continent)."','".mysql_real_escape_string($ville)."','".mysql_real_escape_string($nom_webcam)."','".mysql_real_escape_string($lien_webcam)."','".mysql_real_escape_string('')."','".mysql_real_escape_string($nom_critere)."')";

Posté : 27 oct. 2008, 13:10
par Romuald632
Super !
Excusez, mais je débute en PHP !
Encore merci

Posté : 27 oct. 2008, 13:14
par Victor BRITO
Excusez, mais je débute en PHP !
Tu n'as pas à t'excuser : il faut bien un début à tout. ;)