Se connecter avec
S'enregistrer | Connectez-vous

[Résolu]Mysql, probleme avec les caracteres speciaux

Dernière réponse : dans Programmation

Bonjour amis programmeurs
je me suis heurté à un nouveau problème, avec mysql/php
j'insère une variable php dans une base de donnée mysql de cette façon:
  1. $sql = "INSERT INTO News(titre) VALUES ('$titre')";


le problème est que si $titre possède un caractère spécial comme ', j'obtiens une erreur de syntaxe de ce genre
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 '

une idée ?
Lassé par la pub ? Créez un compte

C'est tout a fait normal !

Imagine
  1. $sql = "INSERT INTO News(titre) VALUES ('balabla'ablabla')";

Ca plante car mySQL va pas comprendre ce que fait ablabla' ici...

Alors le mieux c'est d'utiliser addslashes() de php
  1. $sql = "INSERT INTO News(titre) VALUES ('".addslashes($titre)."')";


Apres attention à l'injection de code...http://www.commentcamarche.net/attaques/injection-comma...
Regarde aussi du coté de http://fr.php.net/htmlentities ...

Si je puis me permettre, en général, la concaténation évite aussi ce genre de problèmes :

mysql_query("insert into table values('".$var."')");

Mais addslashes est une bonne solution.

Après, par mesures de précaution je te conseille de faire ceci :
$var = htmlentities(mysql_escape_string($var)); par exemple.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde