Page 1 sur 1

Les guillemets dans les requêtes SQL

Posté : 12 avr. 2010, 22:30
par kopax
Bonjour,

J'ai un problème j'ai fais un formulaire pour envoyé des mails, avec ajout du contenu dans la base de donnée.

Ca fonctionne mais si l'ajout dans la base de donnée comporte des caractères speciaux comme ', la j'ai le droit à une erreur sql

J'ai essayé avec addslashes et realescapestring avant de faire ma requêtes, mais l'erreur persiste.
$text = "l'avion";
$text = addslashes($text);
// J'ajoute, erreur quand même
$text = "l'avion";
$text= $req -> real_escape_string($text);
// J'ajoute, ca échoue aussi.
Je ne dois pas employé les bonnes méthodes.

Si quelqu'un sais comment faire, merci d'avance.

Re: Les guillemets dans les requêtes SQL

Posté : 12 avr. 2010, 22:57
par jojolapine
Bonsoir,

Quel est ta méthode pour exécuter tes requêtes? fonctions mysql_*() ? mysqli_*() ? PDO ?
Si c'est PDO, méthode utilisée est $objectPDO->quote()

Bon sinon un peu plus de code serait bienvenu :)

Re: Les guillemets dans les requêtes SQL

Posté : 12 avr. 2010, 23:07
par kopax
	$sql = "INSERT INTO $table_contact (id_contact,name,title,company,subject,message,tel,fax,mail) 
	  VALUES('','$name','$title','$company','$subject','$message','$tel','$fax','$mail')";
$req = mysql_query($sql) or die($sql_error.$sql.'<br>'.mysql_error()); 
Voici ma requêtes SQL, je connais pas 50 méthodes je connais que celle la :P
C'est pour une table MySQL

Re: Les guillemets dans les requêtes SQL

Posté : 13 avr. 2010, 01:29
par devlop78
Que dit le message d'erreur Mysql ? Peut-être que l'erreur vient d'ailleurs et quel est ton code avant ?

Re: Les guillemets dans les requêtes SQL

Posté : 13 avr. 2010, 05:58
par kopax
Que dit le message d'erreur Mysql ? Peut-être que l'erreur vient d'ailleurs et quel est ton code avant ?
Voici l'erreur :
INSERT INTO contact (name,title,company,subject,message,tel,fax,mail) VALUES('Un nom','Un titre','Une compagnie','Un sujet','Ceci est le message du text area, je met un apostrophe à la fin du texte et je vais planté le script '','0123456789','0123456789','[email protected]')
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 '0123456789','0123456789','[email protected]')' at line 2
Voici ce qu'il y a avant :
$message = $_POST['message']; 
Rien de plus, j'ai essayé avec le addslashs sur $message mais ça n'a pas fonctionné :/

Re: Les guillemets dans les requêtes SQL

Posté : 13 avr. 2010, 09:25
par jojolapine
Bonjour,
Il faut utiliser mysql_real_escape_string() dans ton cas ;)

Re: Les guillemets dans les requêtes SQL

Posté : 13 avr. 2010, 11:01
par kopax
Merci bien pour l'infos.
C'est effectivement ce que je recherchai.

Re: Les guillemets dans les requêtes SQL

Posté : 13 avr. 2010, 17:45
par devlop78
addslashes aurait dû fonctionner.mysql_real_escape n'est jamais qu'un addslashes avec soit disant l'échappement de \n.

Re: Les guillemets dans les requêtes SQL

Posté : 13 avr. 2010, 18:37
par kopax
Vu l'unique utilité et la simplicité du addslashes(), je suis sur que ça aurai du marché.

Mais à vérifié mon code 50 fois, il n'y avais rien de gênant j'en suis sur.
Entre le moment ou j'envoi le post, en haut de page on récupère les post et ajoute à la base de donnée, rien de traité avant.
Vraiment bizarre.
Au moins ca dépanne, et merci pour la petite précision sur le real_escape_string