Ver Mensaje Individual
  #6 (permalink)  
Antiguo 27/03/2016, 01:44
Avatar de a2garrido
a2garrido
 
Fecha de Ingreso: diciembre-2013
Mensajes: 6
Antigüedad: 10 años, 4 meses
Puntos: 2
Respuesta: BACKUP Y RESTORE de MYSQL (muy bueno)

3ª Parte continuación de Restaurar de 2016
Código PHP:
if (isset($_POST['upload'])) {
    
//echo "Files ".print_r($_FILES)."<br>";
    //echo "POST ".print_r($_POST);
    
$path dirname__FILE__ );
    
$dir$path.'/uploads/';
    if (!
is_dir($dir)) {
        if (!
mkdir($dir0777true)) {
            die(
'No se pudo crear el directorio.');
        }
    }
    
$uploadfile $dirbasename($_FILES['userfile']['name']);
    
    print 
'<pre>';
    switch (
$_FILES['userfile']['error']){
        case 
0:// UPLOAD_ERR_OK
            //Debug("Sin error en fichero",$_FILES['userfile']['error'],true);
            
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
                    
//Debug("Archivo subido",$uploadfile);
                    
echo "El archivo <b> $uploadfile </b> es v&aacute;lido y fue cargado exitosamente.<br>";
                    
$NewBD=$_POST["NewBD"];
                    
$tblName=$_POST["tblName"];
                    
$DropDataBase= isset($_POST["DropDataBase"]) && ($_POST['DropDataBase'] =="true")? true false;
                    
$InsertDatos= isset($_POST["InsertDatos"]) && ($_POST['InsertDatos'] =="true")? true false;
                    
$VerSoloErrores= isset($_POST["VerSoloErrores"]) && ($_POST['VerSoloErrores'] =="true")? true false;
                    
$fixUtf8=isset($_POST["fixUtf8"]) && ($_POST['fixUtf8'] =="true")? true false;
                    
$BDrun_split_sql($uploadfile$host$usuario,$passwd ,$NewBD,$DropDataBase,$InsertDatos,$VerSoloErrores$fixUtf8,$tblName);
            } else     echo 
"<br>¡Posible errror en carga de archivos!";
            break;
        case 
1// UPLOAD_ERR_INI_SIZE
            
echo "<br>El archivo sobrepasa el limite autorizado por el servidor(archivo php.ini) !";
            break;
        case 
2// UPLOAD_ERR_FORM_SIZE
            
echo "<br>El archivo sobrepasa el limite autorizado en el formulario HTML !";
            break;
        case 
3// UPLOAD_ERR_PARTIAL
            
echo "<br>El envio del archivo ha sido suspendido durante la transferencia!";
            break;
        case 
4// UPLOAD_ERR_NO_FILE
            
echo "<br>El archivo que ha enviado tiene un tamaño nulo !";
            break;
        default: 
            echo 
"<br>ERROR DESCONOCIDO !"
            break;
    }
    print 
"</pre>";
    unset(
$_POST['upload']);
    
$_POST[]=array();
}
if (!empty(
$BD))    {
    
$conexion = new mysqli($host$usuario$passwd,$BD) or die ("No se puede conectar con MySQL: %s\n"$conexion->connect_error);
    if (!
$conexion->set_charset("utf8")) {  // cambiar el conjunto de caracteres a utf8 
        
printf("Error cargando el conjunto de caracteres utf8: %s\n"$conexion->error);
        exit();
    }
    
$strSQL "SHOW FULL TABLES FROM $BD WHERE Table_Type='BASE TABLE';"//SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = :database AND TABLE_NAME = :table
    
$respuesta $conexion->query($strSQL)or die("No se puede ejecutar la consulta: $strSQL MySQL: \n"$conexion->error);
    
$NumTablas $respuesta->num_rows;
    
$opcionesSelect="";
    while (
$tabla $respuesta->fetch_array(MYSQLI_NUM)) {
        
$opcionesSelect.= "<option value='$tabla[0]'> $tabla[0] </option>";
    }
    
$respuesta->free();
    
$conexion->close();    
        
$CurrentURL=$_SERVER['PHP_SELF'];
        echo 
"<form id='formEmptyTables' name='formEmptyTables' method='POST' action='$CurrentURL'> 
                <INPUT type='hidden' name='host' value='$host'>
                <INPUT type='hidden' name='usuario' value='$usuario'>
                <INPUT type='hidden' name='passwd' value='$passwd'>
                <INPUT type='hidden' name='BD' value='$BD'>
                <h2>Tablas en la Base de Datos : </h2>
                <label>
                Mantener pulsado la tecla &lt;ctrl&gt; + clic  
                </label><BR />
                        <select name='Tablas[]' size='$NumTablas' multiple='multiple' tabindex='1'>
                        $opcionesSelect
                        </select> <BR /><BR />
                    <label> Operacion sobre tablas seleccionadas:        </label><BR />
                        <select name='OpSQL' size='7' >
                            <option value='Select'> Select </option>
                            <option value='Empty'> Empty/Truncate/Delete </option>
                            <option value='Drop'> Drop </option>
                            <option value='Rename'> Rename </option>
                            <option value='Duplicate'> Duplicate/Copy </option>
                            <option value='ShowCreateTable'> Definicion DDL </option>
                            <option value='ShowTableStatus'> Propiedades </option>
                        </select><BR /><BR />
                     <label> Instruccion SQL :  (es idependiente de las tablas seleccionadas)</label><BR />
                            <TEXTAREA name='strSQL' rows='4' cols='80'></TEXTAREA><BR />                
                    <input type='submit' name='DoSQL' value='[ Ejecutar ]' tabindex='2' />
                </form>    "
;    
    }
    
?>