Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/03/2006, 15h19   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 52
Points : 10
Points : 10
Par défaut [SQL] magic quotes ou double apostrophes pour échapper apostrophe

Bonjour,

J'ai une requête SQL dans ma page PHP pour insérer du texte dans une base de données Access.
Code :
1
2
3
 
$query = "insert INTO loi(nom,type_plan,loi_plan,description_loi)";           
$query .= "VALUES ('$nom','$type','$loi','$desc');";
J'ai essayé d'utiliser magicquotes() mais j'ai toujours un message d'erreur quand je met un anti-slash avant une paostrophe pour l'échapper.
Par contre si je met une double apostrophe, cela fonctionne mais je voudrais savoir si il y a une fonctionPHP qui existe car j'ai des textes a insérer dans la base de données et je ne sais pas comment faire pour parcourir le texte et mettre une autre apostrophe si il y en a deja une.

Merci de votre aide

Cordialement,
zorian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 15h25   #2
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 69
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2005
Messages : 69
Points : 27
Points : 27
pour échapper les caractères du type " ' " tu peux mettre la fonction mysql_real_escape_string(nom_variable), il y a un post un peu plus loin qui répond à cette question
denn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 15h33   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 52
Points : 10
Points : 10
J'ai une base access je ne peux donc pas utiliser la fonction mysql_real_escape_string(nom_variable)!!!
Je n'ai pas trouvé une autre fonction qui peut marcher.....y a t il une possibilité??

Merci
zorian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 15h40   #4
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
http://fr.php.net/manual/fr/function.addslashes.php

Ca devrait t'aider je pense si j'ai bien compris le problème
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 15h45   #5
Candidat au titre de Membre du Club
 
Inscription : décembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 52
Points : 10
Points : 10
Merci pour votre aide mais addslashes() est une fonction qui rajoute des anti slash avant l'apostrophe mais je cherche a mettre a trouver comment mettre une autre apostrophe à la place de l'antislash. car avec SQL une seconde apostrophe échappe la première.
Mais je ne sais pas du tout comment m'y prendre... existe-t-il une fonction pour cela?

merci
zorian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 15h47   #6
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 69
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2005
Messages : 69
Points : 27
Points : 27
peut etre en remplaçant automatiquement les ' par '' avec la fonction str_replace();

http://fr.php.net/manual/fr/function.str-replace.php
denn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 15h47   #7
Membre confirmé
 
Avatar de BenoitDenis
 
Inscription : avril 2005
Messages : 538
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2005
Messages : 538
Points : 219
Points : 219
Envoyer un message via MSN à BenoitDenis
l'antisclash aussi echappe l'apostrophe

sinon

Code :
1
2
 
str_replace("'","''",$tachaine)
http://fr.php.net/manual/fr/function.str-replace.php
BenoitDenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 16h23   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Pour information :
http://us2.php.net/manual/fr/ref.sybase.php#ini.magic-quotes-sybase
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h31.


 
 
 
 
Partenaires

Hébergement Web