Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/09/2003, 17:25
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Pues .. si sabes que phpmyadmin "lo hace" .. y sabes que es código PHP "abierto" .. puedes ir empezando por investigar su código para ver cómo lo hacen .. no crees?.

Bueno, te doy algunas guías de cómo lo hace phpmyadmin:

1) .. El objetivo es generar el SQL de INSERT y .. (CREATE TABLE .. si corresponde) de tus consultas SQL para insertar datos (caso de INSERT) o de crear la estructura de tus tablas (caso del CREATE TABLE ..)

2) Todo esto lo puedes generar hacia un archivo .. lo cual implicaría usar funciones de fwrite() fopen() y afines .. o hacia "descargar" .. lo cual implicaría uso de cabeceras HTTP para descarga (header("content-type: ....") y varias más ..)

3) El formato que debes usar paras tus INSERT .. es el que se define en la sintax de uso del SQL de mysql .. Sólo tienes que separar cada bloque "INSERT" por un salto de línea (\n) y un ; (punto y coma) .. Eso le indica a Mysql (SQL) que empieza ahí una nueva instrucción SQL que interpretar ..

4) Generar tus "INSERT" no es más que tratarlo como si de una cadena (string) cualquiera se tratase, pero, con el formato que debes seguir y define su sintax. Así que tendrás que concatenar el valor de tus campos ($row['nose'] ) con el resto de sintax de la isntrucción INSERT (o CREATE TABLE .. si corresponde) con sus , (comas) .. () (parentesis) y ; (punto y coma) .. (recueda el \n como salto de línea).

5) (opcional) .. Si quieres hacerte una aplicación complementaria que sea el de "restaurar" tu back up .. Recuerda que mysql_query() sólo ejecuta una instrucción SQL a la vez. Así que si pretendes leer tu ".SQL" generado para ejecutar el backup "restaurador" .. tendrás que usar explode() para separar instrucciones (al caracter ; ) ...

---------

Con respecto al "dump" .. Si en tu servicio de hosting te dan acceso SHELL (consola) y puedes ejecutar comandos ... NO necesitas conocer la ruta de "dump" ejecutable .. tan sólo usa la sintax correcta (y recuerda en usar rutas absoultas tipo /var/nose .. si es LInux) ...

Anque tengas acceso Shell a tu servicio de hosting .. es probable que no tengas permisos para ejecutar "dump" de mysql .. En tal caso si deseas usarlo visita el manual de Mysql primero, averigüa la sintax de uso (o revisa esa FAQ una vez más) y contacta a tu proveedor de hosting para ver si podrías ejecutarla tu ...

A "malas" tambíen puedes "lanzar" ese tipo de ejecuciones por un exec() o .. system() (entre otras funciones) .. como creo recordar que describe la misma FAQ que vistes (todo esto si corres PHP en modo NO safe mode y tengas permisos de ejecución ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.