Se connecter / S'enregistrer
Votre question

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

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
Anonyme
13 Avril 2007 12:01:39

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 ?

Autres pages sur : resolu mysql probleme caracteres speciaux

13 Avril 2007 13:14:40

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 ...
Contenus similaires
13 Avril 2007 14:04:35

Nickel je connaissais pas !
Anonyme
13 Avril 2007 14:26:45

Merci de vos réponses :) 
c'est exactement ce que je voulais
23 Mai 2007 16:23:01

Pour enlever les caractères qui bloquent ton insertion fais : addslashes($titre); il va dupliquer le caractère en question . au moment de la lecture tu feras stripslashes($titre)
23 Mai 2007 16:39:15

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.
Anonyme
23 Mai 2007 16:40:41

Merci mon problème était résolu mais j'en prends note pour la prochaine fois
23 Mai 2007 16:42:11

@mofallyes:
- quand il y a résolu dans le titre, c'est que c'est le cas
- addslashes() ne protège pas contre les injections sql
- et surtout ca a été dit 4 posts avant
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS