Jump to content
lorik

mysqli_real_escape_string fonctionnement bizarre...

Rate this topic

Recommended Posts

Bonjour à tous, un tit truc assez inexplicable pour moi...

J'ai un script, qui extrait des données de plusieurs sources, les traites, et insere dans une table. Pour chaque donnée, avant de l'inserer, j'ai un

$var=mysqli_real_escape_string ($link, $var);

alors d'un coté, ça marche bien, mes données sont correctement insérées, même quand j'ai des caractères à échapper. Par contre, 2 trucs :

- Dans ma table, même si les données sont insérée, j'ai certains caractères correctement echappés dans un champ (ex, Organisé par l\'Olympique d\'Huez- Alpes d\'Huez), et pas échappés dans d'autres champs (Alpes d'Huez) alors que la chaine a bien été soumise à mysqli_escape_string(..)

Et aussi, dans l'autre sens, j'avais oublié d'echapper certaines données, et... elle sont correctement insérées, alors qu'il traine dedans les caractères qui devraient faire planter la requete, comme '...

 

Vous allez me dire, 'bon, mais si c'est bien inséré, il est ou le problème ?' Bal le problème, c'est qu'après, j'ai un autre traitement qui lit la table, et insère certaines données dans une autre table. Et là, les chaines non echappées (pourtant bien insérées dans la première table) font planter la 2eme insertion...

 

Bref, y un truc que je pige pas, là...

 

Merci de votre aide.

Share this post


Link to post
Share on other sites

Salut,

Y'a une confusion quelque part parce que échapper un string au moment de l'insertion ca ne met pas de slash dans la table normalement...

Bref si ton insertion était bonne, tu aurais "Alpes d'huez" dans le champ et pas "Alpes d\'huez"

Donc y'a un double échappage qui traine quelque part.

Pour info, perso sur insertion je mets les fonctions d'échappement directement au niveau du insert :

 

Insert into matable (
	Champ1,
	Champ2,
	...
) values (
	'" . mysql_real_escape_string($mavar1) . "',
    '" . mysql_real_escape_string($mavar2) . "',
    ....
)

Ca évite ce genre de problèmes puisque $mavar n'est jamais modifié ailleurs qu'à l'insertion

 

Bon courage pour ta recherche !

Share this post


Link to post
Share on other sites

Merci de la réponse.

Effectivement, il y avait une double utilisation de

mysql_real_escape_string

c'est ça qui mettait le B... Une fois nettoyé, ça marche mieux. Je retiens l'idée de mettre ça juste à l'insert, c'est vrai qu'on est tranquille, du coup ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...