Insertion d'apostrophe dans MySQL = pas bien!

Fermé
$heLL32 Messages postés 3 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 29 septembre 2003 - 12 sept. 2003 à 00:29
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 12 sept. 2003 à 09:21
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 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
12 sept. 2003 à 09:21
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 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 29 septembre 2003 7
12 sept. 2003 à 00:44
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