Probleme insertion dans une table.

Résolu
martinaur Messages postés 12 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 7 avril 2007 - 3 déc. 2006 à 20:37
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 4 déc. 2006 à 09:42
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

platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
3 déc. 2006 à 20:51
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);
3
martinaur Messages postés 12 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 7 avril 2007
3 déc. 2006 à 21:14
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);
3
martinaur Messages postés 12 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 7 avril 2007
3 déc. 2006 à 21:26
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é!
3
platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
3 déc. 2006 à 23:14
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 :)
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 déc. 2006 à 09:42
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)
0
Rejoignez-nous