|
un inverse pour quote? (WB9, php) |
Iniciado por g.sgame, dez., 12 2005 3:53 PM - 4 respostas |
| |
| | | |
|
| |
Publicado em dezembro, 12 2005 - 3:53 PM |
Il y a quote qui est l’équivalent d’ addslashes en php, mais qu’en est-il de son contraire ? - y a-il un équivalent de stripslashes ?? |
| |
| |
| | | |
|
| | |
| |
Publicado em dezembro, 13 2005 - 11:50 AM |
Je ne me suis pas clairement exprimé: Ma question est plutôt la suivante:
Comment faire une recherche de sélection sur une valeur qui a été rentrée dans une table en subissant l'action de quote (qui contenait donc une apostrophe) entremembre est une chaîne entremembre = "INSERT INTO membres("+... "nom, " +... "prenom , "+... "adresse , "+... "cp, "+... "ville, "+... "email , "+... "confirmation )"+... " VALUES ("+... Quote(nom)+","+... Quote(prenom)+","+... Quote(adresse)+","+... Quote(cp)+","+... Quote(ville)+","+... Quote(email)+","+... Quote(confirmation)+")"
Info ("Vision du texte de la requête:", entremembre)
res_entremembre est un booléen res_entremembre = SQLExec(entremembre,"REQENTREMEMBRE")
SI res_entremembre =1 ALORS Info("enregistrement OK !") SINON SQLInfoGene("REQBIDON") Info("erreur ajout membre",SQL.MesErreur) FIN
Mais, ensuite il n’est pas possible de rechercher tous les membres qui auraient le même nom si ce nom contient une apostrophe :
nomatrouver ="SELECT membres.id, membres.nom, membres.email FROM membres " nomatrouver = nomatrouver + "WHERE membres.nom =" nomatrouver = nomatrouver +" "+Quote(nom)+" " nomatrouver = nomatrouver +" AND membres .statut = '"+artificiel+"' "
Info("la requête de recherche par nom donne :", nomatrouver) //pour la vérification res_nomatrouver est un booléen res_nomatrouver = SQLExec(nomatrouver,"REQNOMATROUVER")
nb_compte est un entier SI SQLReqExiste("REQNOMATROUVER ")=1 ALORS nb_compte=0 SQLPremier("REQNOMATROUVER ") TANTQUE PAS SQL.EnDehors ListeAjoute(ListeNomIdem,SQLCol("REQNOMATROUVER ",2) ) SQLSuivant("REQNOMATROUVER ") nb_compte++ FIN Info("ce qui donne :",nb_compte +"membres homonymes") FIN
La requête de sélection d’un mot qui a subi l’action de quote ne marche pas par une requête classique, ni quand on essaie l’action de quote(plus haut)
(Ces mots à apostrophes entrés dans la table avec l’action de quote, perdent leur antislash) Nota : elle marche très bien pour les chaînes de caractères normales
Je pense ne pas être le seul à être concerné par le problème et je remercie par avance ceux qui pourront m’aider
G. |
| |
| |
| | | |
|
| | |
| |
Publicado em dezembro, 13 2005 - 4:24 PM |
rasilly a formulé la demande :
Je ne me suis pas clairement exprimé: Ma question est plutôt la suivante:
Comment faire une recherche de sélection sur une valeur qui a été rentrée dans une table en subissant l'action de quote (qui contenait donc une apostrophe)
Où est le pb? La fonction quote doit avoir pour fn de doubler les quotes ou préfixer par / des caractères particuliers. Mais cela n'influe pas sur la recherche.
FONCTION Quote(pCh) // 1. Double les apostrophes dans la chaine // 2. Entoure avec des apostrophes Ch est une chaîne Ch=pCh Ch=SansEspace(Ch) Ch = Remplace(Ch, "'", "''") SI gBase=cMYSQL ALORS Ch = Remplace(Ch, "\", "\\") Ch = Remplace(Ch, RC, " \r\n") Ch = Remplace(Ch, Caract(0), "\0") FIN RENVOYER "'"+Ch+"'"
ensuite un "INSERT INTO MATBLE (zon1,zon2 ....)VALUES("+Quote(mazone)+","+Quote(mazone2) ..... +")"
avec un "select zon1 from MATBLE WHERE zon1="+Quote(mazone)
ça marchera si mazone contient "d'accord mec !"
entremembre est une chaîne entremembre = "INSERT INTO membres("+... "nom, " +... "prenom , "+... "adresse , "+... "cp, "+... "ville, "+... "email , "+... "confirmation )"+... " VALUES ("+... Quote(nom)+","+... Quote(prenom)+","+... Quote(adresse)+","+... Quote(cp)+","+... Quote(ville)+","+... Quote(email)+","+... Quote(confirmation)+")"
Info ("Vision du texte de la requête:", entremembre)
res_entremembre est un booléen res_entremembre = SQLExec(entremembre,"REQENTREMEMBRE")
SI res_entremembre =1 ALORS Info("enregistrement OK !") SINON SQLInfoGene("REQBIDON") Info("erreur ajout membre",SQL.MesErreur) FIN
Mais, ensuite il n’est pas possible de rechercher tous les membres qui auraient le même nom si ce nom contient une apostrophe :
nomatrouver ="SELECT membres.id, membres.nom, membres.email FROM membres " nomatrouver = nomatrouver + "WHERE membres.nom =" nomatrouver = nomatrouver +" "+Quote(nom)+" " nomatrouver = nomatrouver +" AND membres .statut = '"+artificiel+"' "
Info("la requête de recherche par nom donne :", nomatrouver) //pour la vérification res_nomatrouver est un booléen res_nomatrouver = SQLExec(nomatrouver,"REQNOMATROUVER")
nb_compte est un entier SI SQLReqExiste("REQNOMATROUVER ")=1 ALORS nb_compte=0 SQLPremier("REQNOMATROUVER ") TANTQUE PAS SQL.EnDehors ListeAjoute(ListeNomIdem,SQLCol("REQNOMATROUVER ",2) ) SQLSuivant("REQNOMATROUVER ") nb_compte++ FIN Info("ce qui donne :",nb_compte +"membres homonymes") FIN
La requête de sélection d’un mot qui a subi l’action de quote ne marche pas par une requête classique, ni quand on essaie l’action de quote(plus haut)
(Ces mots à apostrophes entrés dans la table avec l’action de quote, perdent leur antislash) Nota : elle marche très bien pour les chaînes de caractères normales
Je pense ne pas être le seul à être concerné par le problème et je remercie par avance ceux qui pourront m’aider
G.
-- Eric Roumégou Webmaster des wtablettes |
| |
| |
| | | |
|
| | |
| |
Publicado em dezembro, 13 2005 - 10:50 PM |
En essayant juste avec une chaine j'obtiens :
Warning: No ending delimiter '/' found in c:\mes sites\rouvre\rouvre_web\fr\WD9.0\WD90VM.php on line 32
Est-ce étrange? |
| |
| |
| | | |
|
| | |
| |
Publicado em dezembro, 16 2005 - 6:33 PM |
Autant pour moi, les quote fonctionne très bien , l'erreur est à la concaténation à laquelle je dois dire que j'ai du mal à me faire !!
Merci pour votre aide! G. |
| |
| |
| | | |
|
| | | | |
| | |
|