Problème d'apostrophe

Bonjour,

Cette requête ne fonctionne pas lorsque $statut contient une apostrophe et je ne sais pas pourquoi.

ora_parse($cur,“SELECT * FROM FON_PHP_STATUT_VUE where STATUT=’$statut’ order by NOM_FAMILLE, PRENOM”,$x) or die(Ora_Error($conn));

addslash(); faut juste l’utilisé quand il faut, ca permet d’échapé les " ’ pour evité qu’il soit interprété comme des délimiteur de champ :slight_smile:

Non, surtout pas.

Il ne faut pas oublier qu’en SQL pur, standard, et pas le sous dialecte de bas étage que peut être mySQL par défaut, hé bien les chaînes de caractères

  1. commencent et finissent par ’
  2. peuvent contenir des ’ mais il faut les doubler, soit ‘c’‘est un exemple’

Dans ce cas particulier, tu ne dois pas faire ça, mais :

$stmt = ora_parse($cur, 'SELECT * FROM FON_PHP_STATUT_VUE where STATUT=:statut order by NOM_FAMILLE, PRENOM', $x);
ora_bind($cur, "statut", ":statut", $statut, 1);
ora_exec($cur);

cf. www.manuelphp.com…

Par contre, tu utilises un package déprécié, essaye voir PDO pour 1) te simplifier la vie 2) avoir quelque chose de plus “portable”/ standard, même si pas parfait.