Jump to content
  • 0
Paulo Oliveira Albuquerque

FAZENDO EXPORTAÇÃO DO BANCO DE DADOS MYSLQI

Question

Ola galera

Preciso de ajuda se puderem me ajudar ai

Eu tenho o código de fazer EXPORTAÇÃO da database ela faz tudo certo e salva em uma pasta

porém quero que quando ela for baixado que tenha uma listagem dos que foi baixando sem precisar eu ter que abrir o cpanel e ir ate a pasta onde esta

 

Código do form

		<?php
		if(isset($_SESSION['msg'])){
			echo "<p>".$_SESSION['msg']."</p>";
			unset($_SESSION['msg']);
		}
		?>
		<form method="POST" action="processar.php" enctype="multipart/form-data">
									<div class="col-md-6">
										<div class="form-group">
											<label>Servidor:</label>
								    		<input class="form-control" name="servidor"  value="localhost" required>
										</div>
										</div>

									<div class="col-md-6">
										<div class="form-group">
											<label>Usuario:</label>
								    		<input class="form-control" name="usuario"  value="jnnews_99999" required>
										</div>
										</div>

									<div class="col-md-6">
										<div class="form-group">
											<label>Senha:</label>
								    		<input class="form-control" type="password" name="senha"  value="###9898-676#fvf#" required>
										</div>
										</div>

									<div class="col-md-6">
										<div class="form-group">
											<label>Banco de Dados:</label>
								    		<input class="form-control" name="dbname"  value="jnnews_99999" required>
										</div>
										</div>
											<center><hr>
												<button type="submit" class="btn btn-primary">Exportar</button>
												<br><br>
											</center>
											</form>

Aqui é o processar.php

 

<?php
session_start();
ob_start();
//Receber os dados do formulário
$servidor = $_POST['servidor'];
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
$dbname = $_POST['dbname'];

//Criar a conexao com BD
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);

//Incluir o arquivo que gerar o backup
include_once("gerar_dados.php");

header("Location: listar_database.php");

  Este é o gerar_dados.php


 

<?php

//Ler as tabelas
$result_tabela = "SHOW TABLES";
$resultado_tabela = mysqli_query($conn, $result_tabela);
while($row_tabela = mysqli_fetch_row($resultado_tabela)){
    $tabelas[] = $row_tabela[0];
}
//var_dump($tabelas);

$result = "";
foreach($tabelas as $tabela){
    //Pesquisar o nome das colunas
    $result_colunas = "SELECT * FROM " . $tabela;
    $resultado_colunas = mysqli_query($conn, $result_colunas);
    $num_colunas = mysqli_num_fields($resultado_colunas);
    //echo "Quantidade de colunas na tabela: ". $tabela. " - " . $num_colunas . "<br>";
    
    //Criar a intrução para apagar a tabela caso a mesma exista no BD
    $result .= 'DROP TABLE IF EXISTS '.$tabela.';';
    
    //Pesquisar como a coluna é criada
    $result_cr_col = "SHOW CREATE TABLE " . $tabela;
    $resultado_cr_col = mysqli_query($conn, $result_cr_col);
    $row_cr_col = mysqli_fetch_row($resultado_cr_col);
    //var_dump($row_cr_col);
    $result .= "\n\n" . $row_cr_col[1] . ";\n\n";
    //echo $result;
    
    //Percorrer o array de colunas
    for($i = 0; $i < $num_colunas; $i++){
        //Ler o valor de cada coluna no bando de dados
        while($row_tp_col = mysqli_fetch_row($resultado_colunas)){
            //var_dump($row_tp_col);
            //Criar a intrução da Query para inserir os dados
            $result .= 'INSERT INTO ' . $tabela . ' VALUES(';
            
            //Ler os dados da tabela
            for($j = 0; $j < $num_colunas; $j++){
                //addslashes — Adiciona barras invertidas a uma string
                $row_tp_col[$j] = addslashes($row_tp_col[$j]);
                //str_replace — Substitui todas as ocorrências da string \n pela \\n
                $row_tp_col[$j] = str_replace("\n", "\\n", $row_tp_col[$j]);
                
                if(isset($row_tp_col[$j])){
                    if(!empty($row_tp_col[$j])){
                        $result .= '"' . $row_tp_col[$j].'"';
                    }else{
                        $result .= 'NULL';
                    }
                }else{
                    $result .= 'NULL';
                }
                
                if($j < ($num_colunas - 1)){
                    $result .=',';
                }                
            }
            $result .= ");\n";
        }
    }
    $result .= "\n\n";
    //echo $result;
}

//Criar o diretório de backup
$diretorio = 'backup/';
if(!is_dir($diretorio)){
    mkdir($diretorio, 0777, true);
    chmod($diretorio, 0777);
}

//Nome do arquivo de backup
$data = date('d-m-Y');

$tempo= date('h-i-s');
$nome_arquivo = $diretorio . "jnnews_".$data_.$tempo;
//echo $nome_arquivo;

$handle = fopen($nome_arquivo . '.sql', 'w+');
fwrite($handle, $result);
fclose($handle);

//Montagem do link do arquivo
$download = $nome_arquivo . ".sql";

//Adicionar o header para download
if(file_exists($download)){
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: private", false);
    header("Content-Type: application/force-download");
    header("Content-Disposition: attachment; filename=\"" . basename($download) . "\";");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: " . filesize($download));
    readfile($download);
    
    $_SESSION['msg'] = "<span style='color: green;'>Exportado BD com sucesso</span>";
}else{
    $_SESSION['msg'] = "<span style='color: red;'>Erro ao exportar o BD</span>";
}

Aqui seria a listagem da database que eu queria que ela aparece

 

 

						            	<div class="table-responsive">
							            	<table id="DataTable" class="table table-bordered table-striped">
								                <thead>
									                <tr>
									                  <th width="10px">ID</th>
									                  <th>Database</th>
									                  <th>Data</th>
                                                      <th>Hora</th>
									                  <th idth="53px">Baixar</th>
									                </tr>
								                </thead>
								                <tbody>
								                	<?php $Query = DBRead('database','*'); if (is_array($Query)) { foreach ($Query as $database) { ?>
								                		<tr>
										                  <td><?php echo $database['id']; ?></td>
									                      <td><?php echo $database['dbname']; ?></td>
									                      <td><?php echo $database['data']; ?></td>
                                                            <td><?php echo $database['hora']; ?></td>
                                                            <td><?php echo $database['nome_arquivo']; ?></td>

Tipo ai esta tipo uma tabela sql

o que eu preciso na verdade é que todos banco de dados baixado ele seja listado ai pra mim baixar

 

Se puderem me ajudar ai fico grato

 

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.