Leandro Vieira Pinho 0 Denunciar post Postado Junho 21, 2006 Talvez resolva: error_reporting(o); Compartilhar este post Link para o post Compartilhar em outros sites
fsphp 0 Denunciar post Postado Junho 21, 2006 Não funcionou! Simplesmente não aparece nada ao descompactar o arquivo. Alguém faz idéia? :(/> Compartilhar este post Link para o post Compartilhar em outros sites
fsphp 0 Denunciar post Postado Junho 21, 2006 CARACAS Fabyo. Debuguei seu script e o erro era na variável que você digitou errado. :(/> Corrija lá, pelo amor de Deus. ;)/> Onde está: $backup = ""; $tabelas = mysql_list_tables('banco'); O certo é: $backup = ""; $tabelas = mysql_list_tables($banco); Valeu pelo script, parabéns. Realmente esse Fabyo é Soda em PHP http://forum.imasters.com.br/public/style_emoticons/default/clap.gif/> Eu fiz um sistema de backup novo ,bem melhor <?set_time_limit(0);$con = @mysql_connect("localhost", "usuario", "senha");mysql_select_db("banco");$tabelas = mysql_query("SHOW TABLE STATUS");while($l = mysql_fetch_assoc($tabelas)) { $tabela[$l["Name"]] = $l["Auto_increment"];}$backup = "";$tabelas = mysql_list_tables($banco);while($tab = mysql_fetch_row($tabelas)) { $backup .= "--\n-- Estrutura da Tabela $tab[0]\n--\n\nDROP TABLE IF EXISTS $tab[0];\n"; $res = mysql_query("SHOW CREATE TABLE $tab[0]"); while($all = mysql_fetch_assoc($res)){ $str = $all['Create Table']; $str = str_replace("`", "", $str); $str = str_replace(" ", "\t", $str); if(!empty($tabela[$tab[0]])) { $backup .= $str." AUTO_INCREMENT=".$tabela[$tab[0]].";\n\n"; } else { $backup .= $str.";\n\n"; } } $data = mysql_query("SELECT * FROM $tab[0]");if(mysql_num_rows($data)) { $backup .= "--\n-- Extraindo dados da tabela $tab[0]\n--\n\n";} while($dt = mysql_fetch_row($data)){ $backup .= "INSERT INTO $tab[0] VALUES('$dt[0]'"; for($i=1; $i<sizeof($dt); $i++) { $backup .= ", '$dt[$i]'"; } $backup .= ");\n";} $backup .= "\n----------------------------------------------------------\n\n";}echo "<pre>$backup</pre>";?>nao sei se tem gente que precisa mas da pra fazer um sitema bem completo onde a pessoa escolheria o banco num combo e teria mais informações sobre o banco como tamanho, tipo etc... ah corrigi as funções do primeiro topico, o problema era nas antigas tags de PHP que tinha dado pau dai auterou o script por isso dava erro Compartilhar este post Link para o post Compartilhar em outros sites
fsphp 0 Denunciar post Postado Junho 22, 2006 Olha só, como a maioria não tem conhecimentos avançados nem dominam excepcionalmente a tecnologia, acho que o ideal é deixar explicado tin-tin por tin-tin. (como no outro tópico que perguntaram o que era SHOW, em "show tables"). http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif/> Acho que seria interesante incluir no script o seguinte: $localhost = "seu.host"; $usuario = "seu.nome.de.usuario"; $senha = "sua.senha"; $banco = "seu.banco"; $con = @mysql_connect($localhost, $usuario, $senha); mysql_select_db($banco); Basta substituir os valores para as variáveis acima e rodar o script que ele faz o resto automaticamente. O que acha? B)/> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Junho 23, 2006 Entao fsphp, eu nao tinha errado na onde você falou, eu coloquei "banco" porque era para o usuario digitar o nome do banco que ele quiser entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Vieira Pinho 0 Denunciar post Postado Junho 24, 2006 Adicionei a função de ZIP no script. <?set_time_limit(0);$con = @mysql_connect("localhost", "usuario", "senha");mysql_select_db("banco");$tabelas = mysql_query("SHOW TABLE STATUS");while($l = mysql_fetch_assoc($tabelas)) { $tabela[$l["Name"]] = $l["Auto_increment"];}$backup = "";$tabelas = mysql_list_tables($banco);while($tab = mysql_fetch_row($tabelas)) { $backup .= "--\n-- Estrutura da Tabela $tab[0]\n--\n\nDROP TABLE IF EXISTS $tab[0];\n"; $res = mysql_query("SHOW CREATE TABLE $tab[0]"); while($all = mysql_fetch_assoc($res)){ $str = $all['Create Table']; $str = str_replace("`", "", $str); $str = str_replace(" ", "\t", $str); if(!empty($tabela[$tab[0]])) { $backup .= $str." AUTO_INCREMENT=".$tabela[$tab[0]].";\n\n"; } else { $backup .= $str.";\n\n"; } } $data = mysql_query("SELECT * FROM $tab[0]");if(mysql_num_rows($data)) { $backup .= "--\n-- Extraindo dados da tabela $tab[0]\n--\n\n";} while($dt = mysql_fetch_row($data)){ $backup .= "INSERT INTO $tab[0] VALUES('$dt[0]'"; for($i=1; $i<sizeof($dt); $i++) { $backup .= ", '$dt[$i]'"; } $backup .= ");\n";} $backup .= "\n----------------------------------------------------------\n\n";}// Acrescentei o seguinte:$fileName = date('d-m-Y') . '.txt';$fileHandle = fopen($fileName, 'w');fwrite($fileHandle, $backup);fclose($fileHandle);require("zipfile.php");$zipfile = new zipfile(date("d-m-Y").".zip");$zipfile->addFileAndRead($fileName);echo $zipfile->file();?> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Junho 26, 2006 Refiz todo o sistema de backup, deixei mais dinamico, debugado e facil de gerar o backup, e ele mostra o backup na tela ou gera um arquivo.sql init.php: <?php /*nao pensem que eu estou desativando as mensagens de erros porque o sistema nao tem erros, mas para fazer um sistema de debuger é preciso desligar as mensagens de erro para poder mostrar mensagens mais personalisadas */ error_reporting(0); @ini_set('display_errors', '0'); @ini_set('register_globals', '0'); set_time_limit(0); if (!extension_loaded('mysql')) { echo( "Nao esta habilitada a dll Mysql" ); exit; } if(!file_exists("config.php")) { echo "Nao foi localizado o arquivo <b>config.php</b>"; exit; } else { require "config.php"; } if (!defined("SERVIDOR") or !defined("USUARIO") or !defined("SENHA")){ echo "O arquivo <b>config.php</b> nao esta correto<br />"; echo "Crie o <b>config.php</b> dessa maneira:<br />"; echo highlight_string("<?php define(\"SERVIDOR\", \"localhost\"); define(\"USUARIO\", \"coloque_seu_usuario\"); define(\"SENHA\", \"coloque_sua_senha\"); ?>", 1); exit; } ?> index.php: <?php require "init.php"; if(mysql_connect(SERVIDOR, USUARIO, SENHA)) { $re = mysql_query("SHOW DATABASES"); } else { echo "Nao foi possivel conectar no banco de dados<br />Verifique os dados do config.php"; exit; } if (getenv("REQUEST_METHOD") == "POST") { if(isset($_POST["tabelas"])) { $tabela = $_POST["tabelas"]; $sql = "-- Sistema de backup feito por Fabyo Guimaraes 25/06/2006\r\n"; $sql .= "-- Servidor: ". SERVIDOR ."\r\n"; $sql .= "-- Banco de dados: ". $_POST["db"] ."\r\n"; $sql .= "-- Data backup: ". date("d/m/Y H:i:s")."\r\n"; $sql .= "-- Versao MySQL: ". mysql_get_server_info()."\r\n"; $sql .= "-- Versao PHP: ". phpversion()."\r\n\r\n"; mysql_select_db($_POST["db"]); $re = mysql_query("SHOW TABLE STATUS"); while($l = mysql_fetch_assoc($re)){ $tbl_stat[$l["Name"]] = $l["Auto_increment"]; } for($i = 0; $i < count($tabela); $i++) { $re2 = mysql_query("SHOW CREATE TABLE $tabela[$i]"); $sql .= "-- Estrutura da tabela $tabela[$i]\r\n\r\n"; $l2 = mysql_fetch_array($re2); if($tbl_stat[$tabela[$i]] != "") { $sql .= str_replace(" ", "\t", str_replace("`", "", $l2[1])). " AUTO_INCREMENT=". $tbl_stat[$tabela[$i]] .";\r\n\r\n"; } else { $sql .= str_replace(" ", "\t", str_replace("`", "", $l2[1])).";\r\n\r\n"; } $re3 = mysql_query("SHOW COLUMNS FROM $tabela[$i]"); $campos = ""; while ($row = mysql_fetch_array($re3)) { $campos[] = $row[0]; } $re4 = mysql_query("SELECT * FROM $tabela[$i]"); if(mysql_num_rows($re4)) { while($dt = mysql_fetch_row($re4)) { $valores = ""; for($j = 0; $j < sizeof($dt); $j++){ $valores[] .= "'". $dt[$j] ."'"; } $campo = implode(", ", $campos); $valor = implode(", ", $valores); $sql .= "INSERT INTO $tabela[$i] ($campo) VALUES ($valor);\r\n"; } } $sql .= "\r\n"; } echo "<pre>$sql</pre>"; if(isset($_POST["sql"])) { $fp = fopen($_POST["db"].".sql", "w+"); if(!fwrite($fp, $sql)) { echo "Erro na criação do arquivo, verifique a permissao de escrita"; exit; } fclose($fp); } exit; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Backup</title> <script> function seleciona_tudo(retorno){ var frm = document.form1; for(i = 0; i < frm.length; i++) { if(frm.elements[i].type == "select-multiple") { for(var j = 0; j < frm.elements[i].options.length; j++) { frm.elements[i].options[j].selected = retorno ? 'selected' : false; } } } } function envia(val) { document.form1.submit(); } </script> </head> <form id="form1" name="form1" method="post" action=""> <label>Bancos</label><br /> <select name="db" id="db" onchange="envia(this.value)"> <?php while($l = mysql_fetch_array($re)) { if(isset($_POST["db"])) { if($_POST["db"] == $l[0]) { echo "\t<option value=\"{$l[0]}\" selected=\"selected\">$l[0]</option>\r\n"; } else { echo "\t<option value=\"{$l[0]}\">$l[0]</option>\r\n"; } } else { echo "\t<option value=\"{$l[0]}\">$l[0]</option>\r\n"; } } ?> </select><br /> <input type="checkbox" name="checkbox" value="1" onclick="return seleciona_tudo(this.checked);" /><label>Seleciona tudo</label> <br /> <select name="tabelas[]" size="5" multiple> <?php if (getenv("REQUEST_METHOD") == "POST") { $db = $_POST["db"]; $re = mysql_query("SHOW TABLES FROM $db"); while($l = mysql_fetch_array($re)) { echo "<option value=\"{$l[0]}\">{$l[0]}</option>\r\n"; } } ?> </select><br /> <input type="checkbox" name="sql" value="1" /><label>Criar arquivo</label><br /> <input type="submit" name="botao" value="Backup" style="cursor:pointer;"/> </form> </body> </html> config.php <?php define("SERVIDOR", "localhost"); define("USUARIO", "usuario"); define("SENHA", "senha"); ?> criei um arquivo init.php que faz as verificações basicas antes do sistema rodar, e um arquivo de configuração, dai para usar basta configurar o config.php e escolher o banco de dados na lista Compartilhar este post Link para o post Compartilhar em outros sites
magician 0 Denunciar post Postado Julho 20, 2006 Eu remodelei o primeiro para para fazer o backup, com download directo do zip e delete automatico do backup.sql que é criado para ser zipado :D/> Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo.RFS 0 Denunciar post Postado Agosto 30, 2006 Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in f:\clientes\joiedevivre\www\bkp-bancodedados.php on line 22Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in f:\clientes\joiedevivre\www\bkp-bancodedados.php on line 35Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in f:\clientes\joiedevivre\www\bkp-bancodedados.php on line 39Apesar disto ele aparentemente fez tudo!O que este erro significa e o que eu posso "perder" ??? Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo.RFS 0 Denunciar post Postado Agosto 30, 2006 ---------------------------Lendo agora eu vi que nao gero o código de backup do proprio banco, apenas das tabelas!Como corrigir?Abrçs Compartilhar este post Link para o post Compartilhar em outros sites
Hamilcar 1 Denunciar post Postado Setembro 9, 2006 Usei o script e funcionou legal, só tive uma questão que não entendi o porque e gostaria que avaliassem e me explicassem porque. Usei o script em dois servidores, em um é criado um arquivo de texto no servidor com o backup das tabelas e todas as informações do BD, e é também enviado um arquivo .zip para download, mas no outro servidor este arquivo .zip, não vem como .zip e sim como .php, só que é um arquivo zipado, precisando para acessá-lo, renomeá-lo para .zip, será o que está acontecendo?, Obrigado a todos.OBS: O script usado nos dois servidores foram alterados somente a configuração da conexão com o banco de dados. Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo.RFS 0 Denunciar post Postado Setembro 15, 2006 desistiram de responde o topico? Compartilhar este post Link para o post Compartilhar em outros sites
mrkalvin 0 Denunciar post Postado Outubro 18, 2006 Como fazer para restaurar o backup gerado por esse código, via php.------------------ Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 18, 2006 mrkalvin para restaurar você pode usar via php ou via phpmyadmin Ricardo.RFS qual script você ta usando ? Compartilhar este post Link para o post Compartilhar em outros sites
Ricardo.RFS 0 Denunciar post Postado Outubro 19, 2006 Fabyo já resolvi. Grato!Nem lembro o que foi! :D/>se de pra da um help no sistema de login, to anciono pelo codigo, to usando um com cookie e estou com medo do sqlinjectabrçs Compartilhar este post Link para o post Compartilhar em outros sites
pcdesign 0 Denunciar post Postado Outubro 21, 2006 Oi Fabyo,funcionou Beleza o ultimo soft mas não zipou e como faço pra restaurar o arquivo.Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Tiago Capelli 1 Denunciar post Postado Outubro 21, 2006 Pessoal usei o scripit e rodou 100%Valeu, uma sugestão, qual tal criarmos uma função para o cliente selecionar uma pasta local no PC para salvar os Backups ?Fica ai a sugestão.Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
[VAZA] 0 Denunciar post Postado Novembro 24, 2006 Aqui não zipou...pq?flw pessoal Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Novembro 24, 2006 que erro que da? Compartilhar este post Link para o post Compartilhar em outros sites
fsphp 0 Denunciar post Postado Novembro 29, 2006 O script parou quando encontrou <select> E no arquivo txt aparece um combo. Alguém sabe porque?:| Compartilhar este post Link para o post Compartilhar em outros sites