Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Résolu] jDb->query() et quote()

Posted by Nesswaw on 09/13/2011 10:19

Bonjour,

Uh petit soucis en utilisant jDb->query et la méthode quote() pour protéger les variables, dans la doc, il est dit que quote() ajoute automatiquement des guillemets simple ('') autour de la variable...

Je trouve le fait de rajouter ces guillemets pas forcément judicieux, je dois utiliser une variable dans un LIKE qui à cette syntaxe:

//$ title = 'Test';
$title = $cnx->quote($title);
$cnx->query("SELECT id, title FROM article WHERE title LIKE '%$title%'");

Du coup le LIKE généré est faux: LIKE '%'Test'%'

Pour contrer ça je dois utiliser la fonction simple mysql_real_escape_string...je ne suis plus dans la couche d'abstraction de la db....

Y-a-t-il moyen de ne pas ajouter ces '' tout en utilisant quote() pour rester dans la couche d'abstraction?

Merci

  [Opened] jDb->query() et quote()

Reply #1 Posted by laurentj on 09/14/2011 09:03

$title = $cnx->quote('%'.$title.'%');
$cnx->query("SELECT id, title FROM article WHERE title LIKE ".$title);

Ça fonctionne tout aussi bien.

PS: tu ne trouves cela peut être pas judicieux, mais c'est comme cela que fonctionne PDO::quote() par exemple.

  [Opened] Re: jDb->query() et quote()

Reply #2 Posted by Nesswaw on 09/14/2011 09:34

Merci pour l'astuce vraiment tout con^^

Ok si c'est par défaut dans PDO pas de soucis, à nous de nous adapter, trop eu l'habitude de mysql_real_escape_string...:)

 
Page
  1. Re: jDb->query() et quote()