Raccourcis : Contenu - rubriques - sous rubriques
EN FR
Recherche Rapide Recherche avancée
 
Page

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

Posté par Nesswaw le 13/09/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

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

Réponse #1 Postée par laurentj le 14/09/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.

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

Réponse #2 Postée par Nesswaw le 14/09/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. De addJSLink >
  2. Migration jAcl Jelix 1.2 à 1.3 >
  3. [jForms] balise optgroup >
  4. [résolu]master_admin & jelix 1.2 >
  5. Erreur : jquery > v1.4.2 : htmleditor >
  6. Erreur : jquery > v1.4.2 : htmleditor >
  7. Re: jController et ses classes dérivées >
  8. Re: jDb->query() et quote()