Leia as instruções de uso desse script no arquivo bkpmysql.php.";
if(!$dbname)
{
return "O nome do banco de dados precisa ser informado.".$signerro;
}
if(!$local)
{
return "O local onde o arquivo deve ser salvo precisa ser informado.".$signerro;
}
@$con = mysql_connect($host,$usuario,$senha);
if(!$con)
{
return "Erro ao conectar o servidor MySQL, é necessário configurar os dados de conexão no arquivo bkpmysql.php, linhas 76 a 79
\nVerifique abaixo o erro reportado pelo servidor:
\n".mysql_error();
}
@$sel = mysql_select_db($dbname);
if(!$sel)
{
return "Erro ao selecionar o banco de dados: \"$dbname\"
\nVerifique abaixo o erro reportado pelo servidor:
\n".mysql_error();
}
$fcont = "# Criando banco de dados : $dbname\n";
$fcont .= "CREATE DATABASE IF NOT EXISTS $dbname;\n";
@$res = mysql_list_tables($dbname); // Pega a lista de todas as tabelas
if(!$res)
{
return "Não foi possível obter a lista de tabelas no banco de dados, verifique suas permissões no servidor MySQL.\n
Verifique abaixo o erro gerado pelo servidor:\n
".mysql_error().$signerro;
}
while($row = mysql_fetch_row($res))
{
$table = $row[0]; // cada uma das tabelas
@$res = mysql_query("SHOW CREATE TABLE $table");
if(!$res)
{
return "Não foi possível obter a estrutura das tabelas no banco de dados, verifique suas permissões no servidor MySQL.\n
Verifique abaixo o erro gerado pelo servidor:\n
".mysql_error().$signerro;
}
while($lin = mysql_fetch_row($res))
{ // Para cada tabela
$fcont .= "# Criando tabela : $table\n";
$create_table = str_replace("`","",$lin[1]);
$comando = substr($create_table,0,13);
$comando .= "IF NOT EXISTS ".$dbname.".".substr($create_table,13,strlen($create_table));
$fcont .= "$comando;\n# Dump de Dados\n";
@$res = mysql_query("SELECT * FROM $table");
if(!$res)
{
return "Não foi possível selecionar os dados da tabela $table.\n
Verifique abaixo o erro gerado pelo servidor:\n
".mysql_error().$signerro;
}
while($r=mysql_fetch_row($res))
{ // Dump de todos os dados das tabelas
$ct = count($r);
for($i = 0;$i < $ct;$i ++)
{
$r[$i] = addslashes($r[$i]);
}
$sql="INSERT IGNORE INTO $dbname.$table VALUES ('";
$sql .= implode("','",$r);
$sql .= "');\n";
$fcont .= $sql;
}
}
}
$arquivo = $local."/$dbname.sql";
@$back = fopen($arquivo,"w");
if(!$back)
{
return "Ocorreu um erro ao criar o arquivo de backup dos dados no servidor, verifique o local informado e as permissões para esse diretório.".$signerro;
}
@$escreve = fwrite($back,$fcont);
if(!$escreve)
{
return "Não foi possível escrever no arquivo de backup no servidor.\n
Possíveis causas para isso incluem problemas com o servidor ou com o script.\n
Tente novamente e se o problema persistir, contate o administrador.";
}
fclose($back);
// Verifica o endereço de e-mail
if($email)
{
if(!(ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$",$email)))
{
return "O endereço de e-mail informado é inválido, o arquivo de backup foi gerado e está localizado no servidor.".$signerro;
}
$boundary = "XYZ-" . date(dmyhms) . "-ZYX";
$message = "--".$boundary."\n";
$message .= "Content-Transfer-Encoding: 8bits\n";
$message .= "Content-Type: text/html; charset=iso-8859-1\n\n";
$message .= "";
$message .= "Backup do banco de dados $dbname em arquivo anexo.
";
$message .= "Para restaurar o backup vc pode executar o arquivo em uma query SQL, linha de comando ou a partir de um frontend para mysql.";
$message .= "
BKP MySQL by Juarez Fiuza Junior
j.fast@tutopia.com.br
";
$message .= "\r\n\r\n";
$subject = "Backup do banco de dados $dbname";
$message .= "--".$boundary."\n";
$message .= "Content-Type: text/plain\n";
$message .= "Content-Disposition: attachment; filename=\"$dbname.sql\" \n";
$message .= $fcont."\n";
$message .= "--".$boundary."--\r\n";
$to = $email;
$nomefrom = "BKP MySQL";
$emailfrom = "j.fast@tutopia.com.br";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: $nomefrom <$emailfrom>\r\n";
$headers .= "Reply-to: <$emailfrom>\r\n";
$headers .= "Return-path: <$emailfrom>\r\n";
$headers .= "X-Sender: <$emailfrom>\r\n";
$headers .= "X-Mailer: Proj/PHP\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"".$boundary."\"\r\n";
if(!(mail($to, $subject, $message, $headers)))
{
return "Ocorreu um erro ao tentar enviar o e-mail, o arquivo de backup foi gerado e está localizado no servidor.".$signerro;
}
}
return "sucesso";
}
/* -----------------------------------------------------------------------------
Fim do Script
+++++++++++++++++++++++++++++++++++++++++++
+:: Script desenvolvido por: ::+
+:: Juarez Fiuza Junior (12/11/03) ::+
+:: j.fast@tutopia.com.br ::+
+++++++++++++++++++++++++++++++++++++++++++
----------------------------------------------------------------------------- */
?>