| |||
| Backup de BD -> YoDumpeo 1.0b Estos ultimos dias se viene repitiendo bastante el tema de backups a bases de datos. Y como por lo general el ejemplo que esta en las FAQs no funciona por restricciones del servidor, me decidi a hacer un pequeño script que cumpla esta funcion y que trabaje solamente con querys desde PHP y sin exec() o cosas por el estilo. Me interesaria que lo prueban, y cuenten que resultado ebtuvieron. Particularmente en elguna tabla con campos Blob a ver que pasa. Ahi va: Código PHP: Saludos! Última edición por Cluster; 05/07/2006 a las 15:27 |
| |||
| Muy bueno. Lo que más me gustó es el nombre xDDD. Bueno, jeje fuera bromas. Podrías subirlo a las FAQ's como otra alternativa más para hacer "dumpeos xD". No conocia la función headers_send() tomo nota. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
| Genial (tanto la aplicación como el nombre) ![]() Me será muy útil. Gracias
__________________ M a l d i t o F r i k i |
| |||
| Hola, No lo he probado, pero se parece a uno que hice yo, pero en lugar de generar un .sql, generaba un formato XML. Y para devolver comprimido, simplemente pones la cabecera apropiada al tipo de fichero, y en lugar de: Código PHP: Código PHP:
__________________ Josemi Aprendiz de mucho, maestro de poco. |
| |||
| OK para que no se repita codigo, edite el mensaje. Ahora soporta compresion GZ y BZ2. Y ademas puede hacer el Dump de una base de datos entera (sin necesidad de hacer tabla por tabla). Jejejeje, gracias por los comentarios, y si... lo mas original fue el nombre! andinistas, tu cofigo es muy similar al de las FAQs y precisamente hice el mio para evitar el uso de llamadas a programas externos como utiliza aquel (mysqldump.exe). Quizas en nuestras maquinas eso no es problema, pero el los servidores gratuitos (o pagos inclusive) esas funciones estan bloqueadas. Si no se reportan fallas despues lo subo a las FAQs. Saluditos! |
| ||||
| He estado probando el script y la verdad es que funciona sin ningún problema. Ahora me interesaría poder restaurar la base de datos a travez de un formulario donde se pueda cargar el archivo que generó el script anterior. ¿Es posible hacer eso? |
| |||
| Una vez que solventes el detalle de subir el archivo a tu servidor: (o usa el buscador del foro por "Upload" o similar .. tienes ejemplos en las FAQ's también) Lo que genera "YoDumpeo" son instrucciones SQL separadas por ; .. Mysql desde funciones de PHP sólo ejecuta una instrcucciòn a la vez (por lo menos si usan las funciones mysql_xxx() .. por què desde PHP 5 y sus mysqli_xxx() creo que ya se puede ejecutar vàrias sentencias SQL en un mismo xxxx_query()), por ende, tendrás que separar en principio todos tus instrucciones en "lineas" .. para eso simplemente puedes leer el archivo hacia un "string" y luego "partir" ese string en sus separadores ";" para obtener un array con sus sentencias SQL que podrás leer en un bucle para ir ejecutandolas una a una. Un ejemplo simple (una vez que tengas el archivo en el servidor ..): Código PHP: Última edición por Cluster; 05/12/2004 a las 09:41 |
| |||
| A mi me sale este error al prinicipio del fichero 'dump.txt' : <br /> <b>Notice</b>: Use of undefined constant fecha - assumed 'fecha' in <b>d:\archivos de programa\easyphp1-7\www\test\backup.php</b> on line <b>67</b><br /> <br /> <b>Notice</b>: Use of undefined constant hora - assumed 'hora' in <b>d:\archivos de programa\easyphp1-7\www\test\backup.php</b> on line <b>67</b><br /> <br /> <b>Notice</b>: Use of undefined constant mysqlver - assumed 'mysqlver' in <b>d:\archivos de programa\easyphp1-7\www\test\backup.php</b> on line <b>69</b><br /> <br /> <b>Notice</b>: Use of undefined constant phpver - assumed 'phpver' in <b>d:\archivos de programa\easyphp1-7\www\test\backup.php</b> on line <b>70</b><br /> # +================================================= ================== # | YoDumpeo! 1.1b # | por fran86 <fran86@myrealbox.com> # | # | Generado el 25-01-2005 a las 03:01:21 PM por el usurio 'root' # | Servidor: localhost # | MySQL Version: 4.0.15-max-debug # | PHP Version: 4.3.3 # | Base de datos: 'mysql' # | Tablas: [0] => cafeteria; [1] => usuarios # | # +------------------------------------------------------------------- otra cosa: si pongo la opción "gz" o "bz2" me devuelve un fichero que me dice que está corrupto o dañado ...
__________________ Impala |
| |||
| tenes razon. esos E_NOTICE se me pasaron. Lo que faltaba son las comillas que rodean el indice del array (porque si es una cadena TIENE que llevar comillas) Y YO ME OLVIDE. jejeje Voy a aditar el post, y proba si se soluciona. (en este momento yo no puedo) Por otro lado, otra forma de evitar que salten errores de ese tipo es poner al inicion de tu archivo Código PHP: Saludos. |
| ||||
| hola, yo había hecho un sistema para guardar la BD pero sin las estructuras de las tablas, un poco más arcaico, jeje... al ver tu script, le he añadido lo siguiente: Código PHP: qué puede ser?? bueno, muchas gracias!!
__________________ Nippon-Tour, tu portal sobre Japón ¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour |
| |||
| Problema con el script He intentado probar el script y me da este error: Cita: A que se debe este error?. Utilizo APPSERV y solo tengo una aplicación en localhost. Parse error: syntax error, unexpected T_SL in c:\AppServ\*****\backup.php on line 62 |
| |||
| $dump es la variable que tiene el SQL de backup. Habria que crear un archivo temporal... podria hacerse con tmpfile() en conjunto a fopen() y poner dentro dicha variable (fwrite()). Y despues abres la conexion ftp con la funciones que PHP tiene para eso... http://ar2.php.net/ftp Saludos |
| |||
| Pues ahora que me fijjo, ami no ma hace bien la cabecera del dump.txt. Me sale todo en una sola linea y luego me da un error al restaurar la BD. No se que fallará, porque lo que son los datos y la estructura de la Bd los guarda bien, pero no la cabecera. |
| ||||
| Pues a mi me da un error en la linea 62: Código PHP: ¿alguien me puede indicar como solucionarlo? Gracias. |
| ||||
| Un punto que observaba leyendo los mensajes se referia a como cargar los datos al servidor desde un script. Bueno creo que es muy simple, se hace un formulario para subir el archivo (descomprimido o se descomprime), se guarda en un archivo o en una base de datos el lugar en donde quedó el archivo (ruta y nombre del archivo) y luego se realiza un query desde php usando el comando de mysql: source ruta_al archivo/archivo.sql Como ven esto resuelve el caso de archivos .sql |
| |||
| Cita: Hola, perdon por la tardanza... bueno en proncipio no. El script esta hecho exclusivamente para trabajar con tablas Mysql y crear el SQL necesario para restaurarlas. Quizas puedas usar "algo". Pero no es lo mas.fran86: Hay alguna manera de exportar la base de datos a XML haciendo uso de tu script ? Quizas por PEAR (pear.php.net) encuentres algo "casi oficial". Si no por phpclasess.org. Saludos |
| |||
| Cita: Hola, es raro... porque se ve que a otras personas les andaba bien.Me da error de sintaxis en la linea de: $dump=<<<EOT ¿alguien me puede indicar como solucionarlo? Gracias. Una forma de remplazar esto es Código PHP: Info adicional, para ver si encuantras algo que yo no: http://ar.php.net/manual/en/language...syntax.heredoc Saludos y suerte. |
| |||
| Hola amigo Frank86 y todos los participantes. El script me funciona pero cuando voy a hacer la restauración, si los datos contienen algun caracter como acento, #, o punto y coma entre otros me dá un error que me dice que chequee la version de mysql y tal... Que será? gracias de antemano y felicitaciones. |
| ||||
| He probado el código y me da error en la linea 110. $values[] = "'".mysql_real_escape_string$fila[$columna])."'";
__________________ Hospedaxes (Coruña) - Desarrollo, diseño y hosting web |
| |||
| Cita: Al código original le falta un (, pues mysql_real_escape_string() es una función de PHP:
Iniciado por Fociños He probado el código y me da error en la linea 110. $values[] = "'".mysql_real_escape_string$fila[$columna])."'"; Código PHP: Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
| Muchas gracias Cluster. ¿Cómo podría hacer para guardar la copia en el directorio donde está el archivo con el código?
__________________ Hospedaxes (Coruña) - Desarrollo, diseño y hosting web |
| |||
| Según parece en la variable $dump tienes el SQL generado .. ese será el que tendrás que volcar a un archivo usando las típicas funciones fopen() .. fwrite() y equivalente, además de deshabilitar o incluir esa opción: "hacia archivo" o "a descargar" ... (para que no generes el archivo y tambien lo descargues). Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
Este tema le ha gustado a 1 personas (incluyéndote)