FAZENDO EXPORTAÇÃO DO BANCO DE DADOS MYSLQI
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 gratoDiscussão (1)
Carregando comentários...