Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/04/2011, 15:43
Avatar de Deathmetalrules
Deathmetalrules
 
Fecha de Ingreso: diciembre-2010
Ubicación: Mas - aya
Mensajes: 65
Antigüedad: 13 años, 5 meses
Puntos: 8
Mensaje Respuesta: Mejorando backup de mysql

Hola nuevamente gildus he estado haciendo correcciones en el codigo fuente y pues encontre uno mas viable para hacer las mejoras repectivas

Código PHP:
<?php
include("../conexion/conexion.php");
session_start();
/* Reconocimiento a Fran86 # | YoDumpeo! | por fran86 <[email protected]> Tomado de Forosdelweb.com*/
$fechaDeLaCopia "-".date("d l-F-Y");    
$ficheroDeLaCopia =$dbname.$fechaDeLaCopia.".sql";
$drop true;
$tablas false;
$compresion false;
$conexion mysql_connect($servername,$dbusername,$dbpassword) or die(mysql_error());
@
mysql_select_db($dbname,$conexion) or die("No se pudo seleccionar la Base de Datos: "mysql_error());
if ( empty(
$tablas) ){
$consulta "SHOW TABLES FROM $dbname;";
$respuesta mysql_query($consulta$conexion)or die("No se pudo ejecutar la consulta: ".mysql_error());
while (
$fila mysql_fetch_array($respuestaMYSQL_NUM)) {
$tablas[] = $fila[0];}}
$info['fecha'] = date("d-m-Y");
$info['hora'] = date('h:m:s');
$info['mysqlver'] = mysql_get_server_info();
$info['phpver'] = phpversion();
ob_start();
print_r($tablas);
$representacion ob_get_contents();
ob_end_clean ();
preg_match_all('/(\[\d+\] => .*)\n/'$representacion$matches);
$info['tablas'] = implode(";  "$matches[1]);
$usuario=$_SESSION['nombreusuario'];
$dump = <<<EOT
#=====================================================================
#--Generado el 
{$info['fecha']} a las {$info['hora']} por el usuario $usuario
#--Servidor: 
{$_SERVER['HTTP_HOST']} 
#--MySQL Version: 
{$info['mysqlver']}
#--PHP Version: 
{$info['phpver']}
#=====================================================================


--
-- Base de datos: `$dbname `
--

EOT;
foreach (
$tablas as $tabla) {
$sql "SET FOREIGN_KEY_CHECKS=0";   
    
$drop_table_query "";
    
$create_table_query "";
    
$insert_into_query "";
    if (
$drop) {
        
$drop_table_query "DROP TABLE IF EXISTS `$tabla`;";
    } else {
        
$drop_table_query "# No especificado.";
    }
    
$create_table_query "";
    
$consulta="SHOW CREATE TABLE $tabla;";
    
$respuesta mysql_query($consulta$conexion)  or die("No se pudo ejecutar la consulta: ".mysql_error());
    while (
$fila mysql_fetch_array($respuestaMYSQL_NUM)) {
    
    
$create_table_query $fila[1].";";
    }
    
//Fin de $create_table_query
    
$insert_into_query "";
    
$consulta "SELECT * FROM $tabla;";
    
$respuesta mysql_query($consulta$conexion)  or die("No se pudo ejecutar la consulta: ".mysql_error());
    while (
$fila mysql_fetch_array($respuestaMYSQL_ASSOC)) {
    
$columnas array_keys($fila);
            foreach (
$columnas as $columna) {
                if ( 
gettype($fila[$columna]) == "NULL" ) {
                    
$values[] = "NULL";
                } else {
                    
$values[] = "'".mysql_real_escape_string($fila[$columna])."'";
                }
            }
            
$insert_into_query .= "INSERT INTO `$tabla` VALUES (".implode(", "$values).");\n";
            unset(
$values);
    }
        
//Fin de $insert_into_query
$sql "SET FOREIGN_KEY_CHECKS=1";  
$dump .= <<<EOT


--
-- Estructura de tabla para la tabla `$tabla`
--
$drop_table_query
$create_table_query

--
-- Volcar la base de datos para la tabla `$tabla`
--
$insert_into_query







EOT;


}

/* Envio */
if ( !headers_sent() ) {
    
header("Pragma: no-cache");
    
header("Expires: 0");
    
header("Content-Transfer-Encoding: binary");
    switch (
$compresion) {
    case 
"gz":
        
header("Content-Disposition: attachment; filename=$nombre.gz");
        
header("Content-type: application/x-gzip");
        echo 
gzencode($dump9);
        break;
    case 
"bz2"
        
header("Content-Disposition: attachment; filename=$nombre.bz2");
        
header("Content-type: application/x-bzip2");
        echo 
bzcompress($dump9);
        break;
    default:
        
header('Content-Disposition: attachment; filename="'.$ficheroDeLaCopia.'"');
        
header("Content-type: application/force-download");
        echo 
$dump;
    }
} else {
    echo 
"<b>ATENCION: Probablemente ha ocurrido un error</b><br />\n<pre>\n$dump\n</pre>";
}

?>
el caso seria ver mostrar las los alter table...he probado con las opciones que me diste pero solo me arroja la clave primaria