La clase DbQuery de Prestashop

Logo de Prestashop

La clase DbQuery de Prestashop es una clase del propio core del CMS y utilizada para programar por los desarrolladores de Prestashop en algunas ocasiones para montar selects complejas por la variabilidad que puede llevar tener los campos y que quede montada de una forma más limpia en el código.

La clase DbQuery de Prestashop

Es una clase útil para poder montar queries sin tener que mantener el orden normal de las queries, es decir, que no necesitamos poner primero los campos de la select, el from después… , y de esta forma, no condicionar nuestro código con la estructura de las queries MySQL.

Los métodos de la clase DbQuery de Prestashop

Aquí os dejo un ejemplo con algunos de los métodos de esta clase:

Cómo podréis observar en el código no es necesario poner el prefijo de las tablas de Prestashop en las sentencias from y join.Por otro lado también es compatible con los alias de MySQL, ya sea para los campos de la select desde el mismo método, como los de las tablas mediante el segundo parámetro del método from o de la join.

Si necesitáis más información acerca de los métodos de esta clase podéis visitar la documentación que generé hace un tiempo de las clases y controllers de Prestashop que hace referencia a esta clase.

Para poder debugar la query que llevamos construida, podemos obtener el resultado mostrando la query por pantalla mediante el siguiente método.

d($sql->build());

Cómo ejecutar la query

A la hora de ejecutarla, podemos proceder como hacemos normalmente con cualquier query, ya que la clase Db soporta introducir la clase DbQuery de Prestashop en vez de ser una string construida por nosotros.Podemos utilizar ya sea el método executeS(), getRow(), getValue() o el resto de los métodos que utilizamos habitualmente en nuestras queries.

Si necesitáis más información sobre cómo ejecutar sentencias, os propongo que visitéis el artículo de Jose Aguilar que explica cómo trabajar con la clase Db.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votos, media: 4,00 de 5)
Loading...

Got Something To Say:

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Copyright © 2017. Powered by WordPress & Romangie Theme.