27/03/2013, 03:25
|
| Mod on free time | | Fecha de Ingreso: agosto-2008 Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses Puntos: 2237 | |
Respuesta: explicacion de codigo respaldar datos En resumen:
1- SHOW TABLES te da un listado de las tablas que hay en la base de datos seleccionada y obtienes una por una con mysql_fetch_*()
2- Al recorrer cada tabla (foreach):
2.1- Selecciona todos los registros
2.2- Agrega la sentencia DROP nombre_de_tabla para eliminarla antes de crearla nuevamente
2.3- SHOW CREATE TABLE nombre_de_tabla devuelve nombre y sentencia SQL para crear la tabla con sus respectivos campos e índices
2.4- Se recorren los registros agregando la sentencia INSERT para cada uno
3- Se guardan todas las sentencias en un archivo .sql y listo!
Este tipo de scripts es útil para respaldar la base de datos si el usuario no tiene acceso a la consola MySQL, o a PhpMyAdmin o, mejor aún, para dejarlo como tarea programada y garantizar que tendrás un respaldo reciente en caso de alguna emergencia.
El único defecto que le veo es que va guardando todas las sentencias SQL en variables y podría saturar la memoria disponible para PHP. Sería mejor ir guardando cada vez, posiblemente usando file_put_contents().
Finalmente, creo que necesitas repasar el manual de PHP para las funciones mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_row, mysql_result, etc. para que veas lo que devuelve cada una de ellas y en qué forma. Agrego otro par de defectos del script:
- Usa addslashes() en lugar de mysql_real_escape_string() para "escapar" los datos.
- Usa ereg_replace (función obsoleta) para reemplazar saltos de línea. Incluso creo que podría funcionar sin expresiones regulares un simple str_replace(), pero habrá que probarlo. |