\n";
};
function backupmysql() {
require ('../db.php');
/*
nesse db.php ficam os dados
$my_host = 'servidor-do-mysql';
$my_user = 'user-name';
$my_pass = 'senha';
$my_db = 'nome do banco de dados';
*/
$file_time = time();
$file = "backup_" . $file_time . ".sql";
$back = fopen($file,"w");
$version = "1.0";
$link = mysql_connect($my_host,$my_user,$my_pass) or die("erro connectando: " . mysql_error());
mysql_select_db($my_db,$link) or die("erro selecionando: " . mysql_error());
$tables = mysql_list_tables($my_db) or die("erro no list_tables: " . mysql_error());
########################
# CABECALHO DO ARQUIVO #
########################
$timebkp = date("d/m/Y, H:i:s",time());
$mysql_version = mysql_get_server_info();
$php_version = phpversion();
fwrite($back,"-- bacteria_(PHP/MySQL/Dump)
-- version: $version
--
-- Servidor: $my_host
-- Horario de backup: $timebkp
-- Versao do MySQL: $mysql_version
-- Versao do PHP: $php_version
--
-- Bando de dados: `$my_db`
--
-- --------------------------------------------------------
");
while ($row = mysql_fetch_row($tables)) {
$table = $row[0]; // cada uma das tabelas
mysql_query("OPTIMIZE TABLE `boletos`;") or die("erro otimizando tabelas: " . mysql_error());
$res2 = mysql_query("SHOW CREATE TABLE $table");
while ($lin = mysql_fetch_row($res2)) { // para cada tabela
fwrite($back,"--\n");
fwrite($back,"-- Estrutura da tabela `$table`\n");
fwrite($back,"--\n\n");
fwrite($back,"DROP TABLE IF EXISTS `$table`;\n");
$new_lin = str_replace("CREATE TABLE `","CREATE TABLE IF NOT EXISTS `",$lin[1]);
fwrite($back,"$new_lin ;\n\n");
fwrite($back,"--\n");
fwrite($back,"-- Extraindo dados da tabela `$table`\n");
fwrite($back,"--\n\n");
$res3 = mysql_query("SELECT * FROM $table");
if (mysql_num_rows($res3) == 0) {
break;
};
$fields = mysql_list_fields($my_db,$table);
$columns = mysql_num_fields($fields);
$nc = $columns;
$nc--;
$fiel = NULL;
fwrite($back,"INSERT DELAYED IGNORE INTO `$table` (`");
for ($i = 0; $i < $columns; $i++) {
$fiel .= mysql_field_name($fields, $i);
if ($i < $nc) {
$fiel .= ";";
};
};
$newfiel = explode(";",$fiel);
fwrite($back,implode("`, `",$newfiel));
fwrite($back,"`) VALUES ");
$i=1;
$rt = mysql_num_rows($res3);
$ft = mysql_num_fields($res3);
while ($r=mysql_fetch_row($res3)) {
fwrite($back,"(");
for ($x=0; $x < $ft; $x++) {
if (mysql_field_type($res3,$x) == 'int' || mysql_field_type($res3,$x) == 'real') {
fwrite($back,"$r[$x]");
} else {
fwrite($back,"\"$r[$x]\"");
};
$nft = $ft;
$nft--;
if ($x < $nft) {
fwrite($back,", ");
};
};
fwrite($back,")");
if ($i < $rt) {
fwrite($back,",\n");
} else {
fwrite($back,";\n");
};
$i++;
};
fwrite($back,"\n-- --------------------------------------------------------\n\n");
};
};
fclose($back);
if (gzip($file)) {
print "$file_time
\n";
} else {
die("erro na compactacao do arquivo!
\n");
};
};
function gzip($src, $level = 9, $dst = false){
if($dst == false){
$dst = $src.".gz";
};
$old_src = $src;
if(file_exists($src)){
$filesize = filesize($src);
$src_handle = fopen($src, "r");
if(!file_exists($dst)){
$dst_handle = gzopen($dst, "w$level");
while(!feof($src_handle)){
$chunk = fread($src_handle, 2048);
gzwrite($dst_handle, $chunk);
}
fclose($src_handle);
gzclose($dst_handle);
unlink($old_src);
return true;
} else {
error_log("$dst already exists");
}
} else {
error_log("$src doesn't exist");
}
return false;
}
?>