Exécution de Requête contenant l'apostrophe " ' "

Signaler
Messages postés
10
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2007
-
Messages postés
9
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
20 février 2008
-
Salut, comment faire exécuter une requête
,avec les fonctions d'ORACLE ORA_X, qui contient l'apostrophe " ' " ,

par example: $sql="selct * from table1 where chaine1='$type'";


avec $type="l''ordre";

et la table1 contient l'enrg "l'orde" ;
dans les rés il ne ramène rien.
merci pour la réponse

5 réponses

Messages postés
75
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
14 janvier 2009
32
Salut, il doit y avoir 1000 fois la réponse dans le forum.

http://www.php.net/addslashes est une methode.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

la 1ère chose est d'abord de savoir comment on échappe un caractère avec Oracle. Avec mssql, par exemple, addslashes ne sert à rien, il faut faire $sChaine = str_replace ("'", "''", $sChaine);
Bref, il faut échapper ton apostrophe avec le caractère d'échappement utilisé par ton serveur de bdd.
Messages postés
10
Date d'inscription
jeudi 3 juillet 2003
Statut
Membre
Dernière intervention
29 juillet 2007

je l'ais fait , mais aucun résultat, dans oracle  " ' " est le caractère d'échappement.
J'ais essayé   de gégérer une requete avec des variables, contenant ce modit " ' ", et ça ne marche pas !; 

Si je colle cette requete dans SQL elle s'execute correctement alors je n'ais rien compris .

w@lid
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Hello,

comme te l'a dit Malalam, si tu as une requête non échappée dans $sChaine, tu lui fait subir $sChaine = str_replace ("'", "''", $sChaine); et ça ira.

J'ajoute pour ma part que tu dois désactiver les magic quotes gpc et activer les magic quotes sybase dans le php.ini, du moins si tu veux un échappement automatique des variables GET et POST.

Bonne soirée
Messages postés
9
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
20 février 2008

Plus simplement (Façon de parler).

function OCISTR($x)
{
    return str_replace("'","''",$x);
}
.../...
$filter="L'ordre";
$sql="SELECT * FROM titi WHERE nom LIKE '".OCISTR($filter);

Tout savoir sur l'ADSL : http://www.adslinfos.fr