rukiyes
Messages postés67Date d'inscriptionlundi 17 janvier 2005StatutMembreDernière intervention 3 avril 2006
-
14 mars 2005 à 10:01
rukiyes
Messages postés67Date d'inscriptionlundi 17 janvier 2005StatutMembreDernière intervention 3 avril 2006
-
6 avril 2005 à 08:39
bonjour à tous,
j'ai une zone de texte à remplir dans un formulaire, mais quand je mais une quote dans ce texte le php croit que je veut fermer la quote de la requete sql, alors que non.
<FORM name=formulaire>09/05/200412:50c'est un teste de quote
<CENTER>INSERT INTO agenda (datebd, heure, texte) VALUES ( '09/05/2004', '12:50', 'c'est un teste de quote')</CENTER>
Warning : odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression ''c'est un teste de quote')'., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-7\www\pref28\ajout_agenda2.php on line 32 37000</FORM>
voici mon code:
<html>
<head><title>ajout dans agenda</title></head>
morpheus262
Messages postés461Date d'inscriptionmardi 27 avril 2004StatutMembreDernière intervention16 février 2012 14 mars 2005 à 10:41
Salut,
ben une solution peux consister a d abord modifier la cote avant de la saisir dans la base et tu effectura l operation inverse pour un affichage.
str_replace($texte,"'","%xx"); va te trnaformer ton ' en %xx (tu met ce que tu veux pour le xx mais y en a des resservé)
et tu fera l inverse pour afficher.
essaye aussi
str_replace($texte," ' "," '' ") ca peut peut etre marcher:
<HR>
Sans maîtrise la puissance n'est rien et je maîtrise... Apprend ca petit
Sur ce a tchiao bon dimanche.
Warning : odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression ''une'quote')'., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-7\www\pref28\ajout_agenda2.php on line 31
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression ''une'quote')'., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-7\www\pref28\ajout_agenda2.php on line 31 37000
je sais plus quoi faire, et la doc est en anglais et j'ai du mal!!!
aidez moi svp
merci quand meme si tu trouve pas malalam
rukiyes
Messages postés67Date d'inscriptionlundi 17 janvier 2005StatutMembreDernière intervention 3 avril 2006 14 mars 2005 à 15:09
salut,
j'ai bien mit
$texte = addslashes($_POST["texte"]) ;
et
echo striplsashes($texte);
il me met bien les / au bon endroit
mais il me met encore la meme erreur
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression ''unm\'essage');'., SQL state 37000 in SQLExecDirect in ...
jcomprend pas, quand je met un texte sans ' ça marche pourtant!!
rukiyes
Messages postés67Date d'inscriptionlundi 17 janvier 2005StatutMembreDernière intervention 3 avril 2006 14 mars 2005 à 15:44
re,
l'erreur peu venir du sql
ptet que en sql, le ' n'est pas le caractère qui permet de ne pas interpreté ce qu'il y a dedans,
si c'est le cas, savez vous qu'elle est ,en sql ,le caractère qui permet de ne pas interpreté les quote,
sinon si vous avez une autre idée n'hesité pas svp !!!
avez vous une
mysql_real_escape_string () qui permet de gerer ca.
Il n'y a pas l'air d'y avoir la meme chose avec odbc.
Mais je suis quand meme tres etonne...j'ai utilise des addslashes() des
tas de fois avec des requetes sans que cela pose de probleme.
D'ailleurs, c'est marque la :
Bon...tu fais donc bien $texte = addslashes($_POST['texte']);
puis tu mets juste $texte dans ta requete.
Et elle plante en s'arretant au simple quote.
Il faut que tu vois du cote de ta base quel est le caractere
d'echappement. Le probleme vient peut-etre du fait qu'elle ne comprend
pas \ comme un caractere d'echappement.
rukiyes
Messages postés67Date d'inscriptionlundi 17 janvier 2005StatutMembreDernière intervention 3 avril 2006 21 mars 2005 à 15:42
j'ai pas trouvé le caractère d'echapement de access,
par contre j'ai mis une fonction qui remplace les ' par des /,c'est bon l'insertion dans la base marche, et la fonction inverse quand j'affiche les données de la base,
mais c'est une mauvaise idée car si j'ai un / dans le texte, il va me le remplacer par ' meme si je ne le veux pas!!
si tu trouve le caractère d'echapement d'une base access, peut tu me le dire?
et si tu as une autre idée n'hesite pas à me tenir au courant!!
scbzolk
Messages postés2Date d'inscriptionmercredi 16 juillet 2003StatutMembreDernière intervention 5 avril 2005 4 avril 2005 à 13:29
rukiyes,
Je suis pas sur qu'il y ait vraiment un caractère d'échappement dans access mais je viens d'avoir ce problème et si tu doubles les quote ( j'arrive->j''arrive ) ca marche.