Tag Archives: MySQL

Uso de la clase PrestashopCollection

La clase PrestashopCollection

Hoy vamos a ver el uso de la clase PrestashopCollection, ya que os puede ser de utilidad en más de una ocasión, cuando necesitéis, por ejemplo  retocar o consultar masivamente registros de una tabla MySQL de Prestashop, pero para ello necesitemos utilizar un método que hemos implementado en el ObjectModel que define los campos de dicha tabla, y que además, no podamos acceder a el sin instanciar el objeto por no ser estática.

Ejemplo de uso de la clase PrestashopCollection

Pongamos por ejemplo, que queremos obtener todos los transportistas(carriers) asignados a cada producto mediante el método de la clase Product getCarriers.Para ello, definiremos la query que obtendrá los registros que se cargarán dentro del array.Veamos el ejemplo:

 

 

Cómo podréis comprobar en el ejemplo, nos podemos ahorrar varias líneas de código, utilizando esta clase. Una alternativa a esta clase, puede ser el método estático hydrateCollection del objeto ObjectModel, ya que a pesar de tener que utilizar más lineas de código, es bastante más personalizable, ya que podemos montar las queries directamente sobre strings y son necesidad de llamar a métodos de la propia clases para montar nuestra query.De todos modos, sigo recomendando el uso de la clase PrestashopCollection por encima de hydrateCollection si la query que queremos montar para obtener el array de objetos no es excesivamente compleja.

Si utilizáis otros métodos para cargar object models en vuestros desarrollos en Prestashop, no dudéis en dejar en comentario.Espero que os sea de utilidad

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

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...

Hacer backup y restaurar bases de datos MySQL

Logo de MySQL

No tener backup de nuestra base de datos puede tener consecuencias desastrosas en nuestro día a día, ya que en cualquier momento puede ocurrir un error no esperado del cual el servidor no se pueda recuperar, como por ejemplo, se averíe el disco duro en el que tenéis la base de datos del servidor de producción del cliente y no podamos recuperar los datos.Hoy os enseñaré a hacer backup y restaurar bases de datos MySQL a través de la linea de comandos, ya sea desde Windows o Linux.

Backup de base de datos MySQL

Mediante este comando volcaremos en fichero en cual podremos utilizar de backup.

Es importante tener en cuenta el parámetro –default-character-set=utf8.Aquí deberemos poner el charset en el que estará la base de datos, con lo que evitaremos al volcar en el fichero los campos que sean tipo varchar, char , etc guarden correctamente caracteres especiales como los acentos que se guardan de forma distinta en función del charset.

Tenéis más información sobre los parámetros que se le pueden pasar a mysqldump aquí

Restore de base de datos de MySQL

En el campo –default-character-set pondremos el mismo juego de caracteres que el anterior comando para que los caracteres especiales queden volcados correctamente.

1 Star2 Stars3 Stars4 Stars5 Stars (Sin puntuaciones)
Loading...

Copyright © 2017. Powered by WordPress & Romangie Theme.