Probleme insertion dans une table. [Résolu]

Signaler
Messages postés
12
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
7 avril 2007
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
Bonjour,
je debute en php et j'ai un petit probleme, voila mon script :

$requete = "
insert into matable (Auteur, Texte, Date) 
values ('$Auteur','$Texte','$Date')";
mysql_query($requete,$id_connexion);

Le problème est que je ne peut pas mettre d'apostrophe dans le texte à inserer dans la table... Qu'es que je peut faire?
Merci d'avance !

5 réponses

Messages postés
237
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
22 juillet 2011
2
Salut !

La fonction mysql_real_escape_string() est là pour ca... Elle permet de protéger les caractères spéciaux comme les apostrophes pour pouvoir passer la requête correctement à mysql_query...
Tu peux l'utiliser comme ca :
mysql_query(mysql_real_escape_string($requete), $id_connexion);
Messages postés
12
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
7 avril 2007

Ca ne marche pas... je dois mal l'utiliser, je suis vraiment un debutant  ^^
Voila le nouveau script :
$requete = "
insert into matable (Auteur, Texte, Date) 
values ('$Auteur','$Texte','$Date')";
mysql_query(mysql_real_escape_string($requete), $id_connexion);
Messages postés
12
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
7 avril 2007

Après quelques recherches et plusieurs essais, voila mon nouveau script :

$Texte = mysql_real_escape_string($Texte);
$requete = "
insert into matable (Auteur, Texte, Date) 
values ('$Auteur','$Texte','$Date')";
mysql_query($requete,$id_connexion);

Et ca marche trés bien!

J'ai pas trés bien compris ce que tu voulais faire.... si tu pouvais m'expliquer ca serait sympa :p (ca ne pourrait que m'aider)

Et merci pour ta première reponse, sans je n'aurais jamais trouvé!
Messages postés
237
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
22 juillet 2011
2
Euh ouais, en fait je voulais faire la même chose que toi, mais j'ai tapé ma réponse un peu rapidement... Et du tout j'ai mal utilisé la fonction mysql_real_escape_string(), ca m'apprendra :)
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
Salut,

'salut, je t'aime'

comment l'interpréteur pourra-t'il savoir ou se termine ta chaine ?

il faut mettre un \ devant les caractères qui portent à confusion...

pour des guillemets simples, seuls ' et \ portent à confusion,
pour les guillemets doubles, on a aussi \n pour afficher un retour à la ligne, \t pour une tabulation ect...

Mais fait attention, car si qqn s'amuses à insérer des choses pas correctes comme ajouter un UNION SELECT * FROM tableadmin WHERE admin=1 ... il aura accès à tout les passwords... c'est peut-être pas appliquable dans ton cas, mais les injections sql, c'est redoutable pour plomber un site internet...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)