Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-03-2009 16:48:41

MoineauDeParis
Nouveau membre
Lieu: Paris
Date d'inscription: 09-03-2009
Messages: 7
Site web

Du bon usage de Zend_Db_Expr

Avec un : $select de type Zend_Db_Select,
vaut-il mieux écrire : $select->from('statut', array('count(1) as nb'));
ou : $select->from('statut', array('nb' => new Zend_Db_Expr('count(1)')));

La chaîne de requête construite, et vérifiable avec un $select->__toString(), ne montre aucune différence syntaxique.

Quel est le rôle exact de Zend_Db_Expr ?
Je remarque que si l'expression n'est pas, comme dans mon exemple, une fonction, mais le simple nom d'un champ par exemple, celui-ci n'est pas préfixé du nom de la table et c'est dans ce sens que j'avais reçu conseil d'utiliser la deuxième méthode.
Qui reconnaît ici l'utilisation d'une fonction ? Zend_DB_Select, le driver PDO ?

Hors ligne

 

#2 09-03-2009 18:35:04

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Re: Du bon usage de Zend_Db_Expr

Tout est dans la source :

* This class simply holds a string, so that fragments of SQL statements can be
* distinguished from identifiers and values that should be implicitly quoted
* when interpolated into SQL statements.
*
* For example, when specifying a primary key value when inserting into a new
* row, some RDBMS brands may require you to use an expression to generate the
* new value of a sequence.  If this expression is treated as an identifier,
* it will be quoted and the expression will not be evaluated.  Another example
* is that you can use Zend_Db_Expr in the Zend_Db_Select::order() method to
* order by an expression instead of simply a column name.
*
* The way this works is that in each context in which a column name can be
* specified to methods of Zend_Db classes, if the value is an instance of
* Zend_Db_Expr instead of a plain string, then the expression is not quoted.
* If it is a plain string, it is assumed to be a plain column name.

Hors ligne

 

#3 10-03-2009 08:40:15

MoineauDeParis
Nouveau membre
Lieu: Paris
Date d'inscription: 09-03-2009
Messages: 7
Site web

Re: Du bon usage de Zend_Db_Expr

Autrement dit RTFM !
Ok pour ma première question, Zend_Db_Expr ne sert qu'à identifier une chaîne qui ne doit pas être quotée.
Mais ça ne répond pas à la deuxième qui est peut-être plus intéressante.

Hors ligne

 

#4 10-03-2009 11:52:32

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Re: Du bon usage de Zend_Db_Expr

PDO n'a aucune connaissance de Zend_Db_Expr. Ce sont les classes Zend_Db_* qui l'utilisent.

Hors ligne

 

#5 10-03-2009 11:57:47

MoineauDeParis
Nouveau membre
Lieu: Paris
Date d'inscription: 09-03-2009
Messages: 7
Site web

Re: Du bon usage de Zend_Db_Expr

Ah bah oui, PDO est indépendant de ZF, ça j'avais bien compris, j'ai dû très mal m'exprimer !
J'y reviendrai un peu plus tard...

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages