miércoles, 27 de enero de 2016

Backup de bases de datos MySQL con PHP

El presente es una actualización del excelente artículo de Daniel Lopez Azaña quien se merece todos los créditos por el trabajo.

Lo que yo hice fue recopilar e incorporar todas las sugerencias propuestas por los que comentaron en el blog original y agregué de mi parte la especificación de la zona horaria para que el archivo de backup tenga el nombre acorde a la hora real de la zona.


Actualizado al 27/01/2016

  • Cambiado el nombre del constructor a __construct().
  • Cambiado ereg_replace() por str_replace(). 
  • Agregado "\n\n" antes de CREATE DATABASE.
  • Cambiadas comillas dobles a comillas simples.
  • Cambiado NULL en lugar de "" cuando corresponde.
  • Cambiado en str_replace(), comillas dobles en parámetro search, comillas simples en parámetro replace.
  • Cambiado el nombre del destino, carpeta "_backup" en lugar de "cache".
  • Corregido para versión PHP 5.5 usando mysqli_ en lugar de mysql_.
  • Corregido el problema de parámetros faltantes en mysqli_. 
  • Agregado el parámetro date_default_timezone_set(). Puedes cambiarlo según la Lista de Zonas horarias soportadas.

Using PHP to backup MySQL databases

This is an update of the excellent article by Daniel Lopez Azana (Using PHP to backup MySQL databases), who deserves all the credit for the work.

What I did was collect and incorporate all suggestions made by those who commented on the original blog, and added specifying the time zone in order the backup file has the name according to the real time in your zone.

Updated to 27-jan-2016
  • Changed the name of the constructor to __construct ().
  • Changed ereg_replace () to str_replace ().
  • Added "\n\n" before CREATE DATABASE.
  • Changed double quotes to single quotes.
  • Changed NULL rather than "" when appropriate.
  • Changed in str_replace(), double quotes in search parameter, single quotes. in replace parameter.
  • Changed the name of the destination, "_backup" instead of "cache" folder.
  • Fixed for PHP 5.5 version using mysqli_ instead of mysql_.
  • Fixed problem with missing parameters in mysqli_.
  • Added the date_default_timezone_set() parameter. You can change it according to the List of time zones supported.

Como se usa / How to use

  1. Edita el archivo y configura las variables de la base de datos, la carpeta destino y opcionalmente configura la zona horaria.
  2. Sube por FTP el archivo a la carpeta raíz del sitio.
  3. Ejecuta desde la barra de dirección del navegador.
  4. Tu archivo quedará generado en la carpeta destino que definiste y podrás descargarlo vía FTP.


  1. Edit the file and set database variables, destination folder and optionally set the time zone.
  2. Upload via FTP the file to the root folder on the site.
  3. Run from the browser address bar.
  4. The backup file will be generated in the destination folder you have defined, and you can download it via FTP.

Código / Code



2 comentarios:

  1. Diego soto antes que nada te agradezco mucho por haber mejorado el codigo, revise tambien el aporte de Daniel y los dos han creado algo magnifico. Tengo dos dudas querido amigo. 1. Puedo utilizar este codigo para implementarlo en mi aplicación comercial? 2. La segunda pregunta es crees que podría corregirse el que no genere ningun problema cuando las tablas esten relacionadas, esta ultima duda también la hisieron en el post anterior de Daniel. Mil gracias amigo por tomarte el tiempo en mejorar el codigo. Saludos desde Guatemala Att: Abrahnns Hernández

    ResponderEliminar
    Respuestas
    1. Hola Abrahanns. Muchas gracias por tus halagos, me alegra que te haya sido útil. Discúlpame que recién veo tu mensaje. De mi parte, siéntete libre de usar lo que yo hice en donde lo necesites, pero no está en mi autorizar lo que hizo Daniel Lopez. Debes preguntarle a él. Sobre las tablas relacionadas, no tengo claro lo que me planteas, pero lamentablemente no pude dedicarle tiempo. Espero que estés muy bien. Saludos desde Argentina!

      Eliminar