Probleme avec un apostrophe

Eléphant du PHP | 258 Messages

09 déc. 2006, 20:34

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?

Mammouth du PHP | 19672 Messages

09 déc. 2006, 20:41

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) ."')";
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 258 Messages

09 déc. 2006, 21:09

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 (').

Mammouth du PHP | 19672 Messages

09 déc. 2006, 22:24

La seconde sera plus simple et plus propre.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 258 Messages

10 déc. 2006, 14:55

Merci à tous et plus particulièrement à toi cyrano.