inner php zend-framework2

php - inner - Zend Framework 2 y consulta SELECT count(*)



inner join dql doctrine 2 (3)

Alguien en otro foro tuvo la amabilidad de darme la respuesta para esto. Así es como se hace:

$select->columns(array(''num'' => new /Zend/Db/Sql/Expression(''COUNT(*)'')));

Estoy tratando de hacer una consulta como esta usando Zend Framework 2:

SELECT count(*) as num FROM mytable

Aquí está el código que estoy usando para construir mi declaración de selección (tenga en cuenta que he importado las clases necesarias):

$select = new Select(); $select->from(''mytable'') ->columns(array(''num''=>''count(*)''), false);

Este código no funciona porque la consulta resultante es la siguiente:

SELECT [count(*)] AS [num] FROM [mytable]

... que arroja el siguiente error:

Invalid column name ''count(*)''

Esto se debe a los corchetes que rodean el recuento (*). ¿Cómo puedo hacer que funcione correctamente, básicamente para contar (*) en lugar de [contar (*)] en el SQL. Además, sé que puede hacerlo solo con una consulta normal, pero necesito que esto funcione con el objeto Seleccionar. Hasta donde yo sé, esto solía funcionar con las versiones anteriores de Zend, he visto muchas soluciones para eso, pero nada para Zend Framework 2.


¿Podrías probar este código?

$this->num = $select->columns(array(''num'' => new /Zend/Db/Sql/Expression(''COUNT(*)''))); return $this->num;


Sí, sin new /Zend/Db/Sql/Expression(''COUNT(*)'') , solo COUNT(*) lleva a la siguiente declaración de error:

SQLSTATE [42S22]: Columna no encontrada: 1054 Columna desconocida ''albs.COUNT (*)'' en ''lista de campo''

Tener el

new /Zend/Db/Sql/Expression(''COUNT(*)'')

lo resolvió