Page 1 sur 1

Probleme avec un apostrophe

Posté : 09 déc. 2006, 20:34
par 2501gigi
Salut , salut ,
Voila j'ai cette variable
$BoxVal = '<br>Objet disponible à l\'échange ou à la vente.Pour plus infos <a href="mailto:[email protected]">Contactez-moi</a>.';
que j'ai mis dans cette requete :
if ($BoxD == "DISPOV") 
			   {
			   $BoxVal = '<br>Objet disponible à l\'échange ou à la vente.Pour plus infos <a href="mailto:[email protected]">Contactez-moi</a>.';
			   $insertLienimgs = "INSERT INTO tcolllego (IMLego,PIMLego,TITIMlego, BOXl) VALUES ('". $_FILES['fichier_choisi']['name']."','". $_FILES['fichier_choisi2']['name']."' ,'$TitreImagLego','$BoxVal')";
               $Result6 = mysql_query($insertLienimgs, $Debaseconnect) or die(mysql_error()); 
			   header("location: notes.php");
			   }
Et quand je l'exécute sa me mais:
Erreur de syntaxe près de 'échange ou à la vente.Pour plus infos <a href="mailto:nom.bi' à la ligne 1

Une idée?

Posté : 09 déc. 2006, 20:41
par Cyrano
Oui : la protection de ton apostrophe est valable pour PHP mais ne l'est plus pour MySQL : donc, il faut échapper certains échappements :
$BoxVal = '<br>Objet disponible à l\\\'échange ou à la vente.Pour plus infos <a href="mailto:[email protected]">Contactez-moi</a>.';
$insertLienimgs = "INSERT INTO tcolllego (IMLego,PIMLego,TITIMlego, BOXl) VALUES ('". $_FILES['fichier_choisi']['name']."','". $_FILES['fichier_choisi2']['name']."' ,'$TitreImagLego','". $BoxVal ."')";
Autre méthode possible :
$BoxVal = '<br>Objet disponible à l\'échange ou à la vente.Pour plus infos <a href="mailto:[email protected]">Contactez-moi</a>.';
$insertLienimgs = "INSERT INTO tcolllego (IMLego,PIMLego,TITIMlego, BOXl) ".
                  "VALUES ('". $_FILES['fichier_choisi']['name']."','". $_FILES['fichier_choisi2']['name']."' ,'$TitreImagLego','". mysql_real_escape_string($BoxVal) ."')";

Posté : 09 déc. 2006, 21:09
par 2501gigi
Bon jour et merci pour cette réponse mais l'aquelle me conseillerais tu ?

La deuxieme et la mieux non?

Car la première je n'ai jamais vu sa, deja qu'il fallait que je fasse un preg_replace() pour changer (\') en (') alors apres je vois pas trop, à moin qu'il faut que je fasse un preg_replace() pour changer sa (\\\') en (').

Posté : 09 déc. 2006, 22:24
par Cyrano
La seconde sera plus simple et plus propre.

Posté : 10 déc. 2006, 14:55
par 2501gigi
Merci à tous et plus particulièrement à toi cyrano.