Écrire des caractères spéciaux en BDD

Eléphant du PHP | 115 Messages

21 avr. 2016, 14:37

Bonjour tous le monde,

J'ai une question sur un petit problème en php/Mysql.
J'ai un formulaire que je remplie avec différente information et j'écris cela dans ma bdd Mysql.
avec nom
prénom
adress etc...
et une partie commentaire (textarea) qui est comme cela

Code : Tout sélectionner

... <div class="formRow"> <div class="grid12"><label>Commentaries :</label> <div class="grid12"> <div class="grid8"><textarea name="comment" cols="40" rows="30"></textarea></label> </div> </div> </div> <div class="clear"></div> </div> </fieldset> ...
puis-je récupérer l'information du commentaire et je fait cela

Code : Tout sélectionner

$comment=nl2br(htmlspecialchars($_POST['comment']));
et je l’écris dans ma BDD mysql

Code : Tout sélectionner

$sql = "INSERT INTO `appli`.`db_customer` (`id_customer`, `dates`, `time`, `comment`) VALUES (NULL, NOW(), NOW(), '$comment')"; $bdd->exec($sql);
Quant on tape dans ce textarea des caractères spéciaux ça bloque l'enregistrement.
exemple :

J'ai fait ça comme cela...
ET ça na pas fonctionner... (cela est juste un exemple).


et ça n'écris pas dans ma bdd.

Comment puis-je faire avec ces caractères spéciaux
je suis bien en UTF8 dans ma BDD et mon site.

Merci de votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

21 avr. 2016, 20:49

Bonjour,

C'est très probablement les guillemets qui font planter ta requête.
Regarde du côté de PDO quote()
https://secure.php.net/manual/fr/pdo.quote.php
Quand tout le reste a échoué, lisez le mode d'emploi...