Insertion d'apostrophe dans MySQL = pas bien!

$heLL32 Messages postés 3 Statut Membre -  
jisisv Messages postés 3678 Statut Modérateur -
Salut la foule!
J'ai un probleme d'insertion dans MySQL...

Prenez un formulaire du style <TEXTAREA> qui sert a envoyer un commentaire par ex.
L'utilisateur note un truc du genre "Salut l'ami"
La, probleme! Le texte contient une quote! Ca va donc m'afficher une erreur de requete!

Comment faire pour que la base me l'accepte?? Je sais c'est ptetre tout con mais on n'peut pas tout savoir! ;-)

Thanx!

2 réponses

jisisv Messages postés 3678 Statut Modérateur 934
 
Utilise addslashes
<?php
print(addslashes("Salut l'ami\n"));
?>
Salut l\'ami
////
mysql> describe x;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| a | int(11) | YES | | NULL | |
| b | char(10) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> insert into x values(1, 'L\'apostrophe');
Query OK, 1 row affected (0.00 sec)

mysql> select * from x where a=1;
+------+------------+
| a | b |
+------+------------+
| 1 | a |
| 1 | L'apostrop |
| 1 | L'apostrop |
+------+------------+
3 rows in set (0.03 sec)


Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
10
$heLL32 Messages postés 3 Statut Membre 7
 
Quel abruti je fais!
C'est en écrivant cette question que j'ai trouvé la réponse!! ;-)
En utilisant le caractère d'échappement pardi!!!

$sql="INSERT INTO table (commentaire) VALUES (\"$commentaire\");


J'apprends vite hein?! ;-P ;-P
7