Código php:
Ver original// *********************************** RESPALDAR DATOS *********************************** \\
function datos_respaldar() {
include_once ("common.Class/class.Plantilla.php");
include_once ("common.Class/class.Base_Datos.php");
$var_Base_Datos = new Base_Datos ( );
// --------------------------------- Comienza el paso 1 --------------------------------- \\
if(!$_POST){ // si no hay post, no generar consultas
$Contenido = new Plantilla ( "Modules/module.Mantencion/template.datos_respaldar.html" );
$avanza = "<input type=\"hidden\" name=\"avanza\" value=\"avanza\" />";
$Contenido->asigna_variables ( array ("avanza" => $avanza ) ); $ContenidoString = $Contenido->devuelve ();
return $ContenidoString;
}
// --------------------------------- Comienza el paso 2 --------------------------------- \\
if($_POST["avanza"]){
$start = microtime(true); // tomo el tiempo que demora generar el backup $PG_backup = "";
$PG_datos = "";
$consulta1 = "SELECT tablename FROM pg_tables WHERE schemaname = 'public' ;"; // obtengo los nombres de las tablas
$consulta1 = $var_Base_Datos->consultar($consulta1);
while($registro = $var_Base_Datos->obtiene_fila($consulta1)){
$PG_tabla = $registro["tablename"];
$consulta2 = "SELECT column_name FROM information_schema.columns WHERE table_name = '$PG_tabla';"; //obtengo nombres de las columnas
$consulta2 = $var_Base_Datos->consultar($consulta2);
while($registro2 = $var_Base_Datos->obtiene_fila($consulta2)){
$PG_rows_Data[] = $registro2["column_name"]; // agrupo en un array los nombres de columnas
}
$consulta3 = "SELECT * FROM $PG_tabla"; // obtengo todos los datos de la tabla
$consulta3 = $var_Base_Datos->consultar($consulta3);
$PG_datos = $PG_datos . "INSERT INTO $PG_tabla VALUES (";
$PG_datos = "";
$PG_rows_Data = "";
continue;
} // si la tabla no contiene datos.. no agregar al backup
while($registro3 = $var_Base_Datos->obtiene_fila($consulta3)){
foreach($PG_rows_Data as $valores){
$PG_datos = $PG_datos . "'$registro3[$valores]',";
}
$PG_datos = $PG_datos . "),(";
} // agrupo los valores con formato de insert
$PG_datos = str_replace("',)","')",$PG_datos); // elimino las comas demas $PG_datos = substr($PG_datos,0,-2).";\n\n"; // elimino fallo al error de cada insert $PG_backup = $PG_backup . $PG_datos; // agrego los datos al backup
$PG_datos = ""; // limpio variables temporales
$PG_rows_Data = ""; // limpio variables temporales
}
$URL_PG_backup = urlencode($PG_backup); // codifico los datos para evitar conflictos por comillas $record = $end - $start; // tiempo que tardo en hacer el backup
$respaldos = "
<b>Backup Generado correctamente en $record sg.</b><br><br>
<input type=\"hidden\" value=\"$URL_PG_backup\" name=\"URL_PG_backup\" />
<input type=\"button\" value=\"Descargar\" class=\"sis_login\" onclick=\"document.formulario.action='Modules/module.Mantencion/descargarSql.php'; document.formulario.submit();\" />
"; //envio los datos cambiando la direccion del formulario para su proseso de descarga
$Contenido = new Plantilla ( "Modules/module.Mantencion/template.datos_respaldar.html" );
$Contenido->asigna_variables ( array ("respaldos" => $respaldos ) ); $ContenidoString = $Contenido->devuelve ();
return $ContenidoString;
}
}
esta funcion la ise ase algun tiempo quiza te de una idea
saludos!!!