Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Backup do banco mysql
Basta configurar a conexao com o banco e rodar o script
ele pega o banco completo com as tabelas e conteudo e cria um arquivo.sql com a data atual
obs: Feito com Mysqli ( versao das funções do mysql melhorada com varios recursos a mais e orientado a objeto )
só funciona com php5
esse script nao esta usando orientação a objetos ;)
> <?php
$link = mysqli_connect("localhost", "user", "senha", "nome_banco");
if (function_exists("set_time_limit") == 1 and get_cfg_var("safe_mode") == 0)
{
@set_time_limit(0);
}
function sqlAddslashes($str = '', $is_like = false)
{
if ($is_like)
{
$str = str_replace('\\', '\\\\\\\\', $str);
}
else
{
$str = str_replace('\\', '\\\\', $str);
}
$str = str_replace('\'', '\\\'', $str);
return $str;
}
function dumptb($table)
{
global $link;
$nline = "\n";
$dp = "CREATE TABLE $table ($nline\r\n";
$firstfield = 1;
$fields_array = mysqli_query($link, "SHOW FIELDS FROM $table");
while ($field = mysqli_fetch_array($fields_array))
{
if (!$firstfield)
{
$dp .= ",\r\n";
}
else
{
$firstfield = 0;
}
$dp .= "\t" . $field["Field"] . " " . $field["Type"];
if (isset($field['Default']) && $field['Default'] != '')
{
$dp .= ' default \'' . sqlAddslashes($field['Default']) . '\'';
}
if ($field['Null'] != 'YES')
{
$dp .= ' NOT NULL ';
}
if (!empty($field["Extra"]))
{
$dp .= $field["Extra"];
}
}
mysqli_free_result($fields_array);
$keysindex_array = mysqli_query($link, "SHOW KEYS FROM $table");
while ($key = mysqli_fetch_array($keysindex_array))
{
$kname = $key['Key_name'];
if ($kname != "PRIMARY" and $key['Non_unique'] == 0)
{
$kname = "UNIQUE|$kname";
}
$index[$kname][] = $key['Column_name'];
}
mysqli_free_result($keysindex_array);
while (list($kname, $columns) = @each($index))
{
$dp .= ",\n";
$colnames = implode($columns, ",");
if ($kname == 'PRIMARY')
{
$dp .= "\tPRIMARY KEY ($colnames)";
}
else
{
if (substr($kname, 0, 6) == 'UNIQUE')
{
$kname = substr($kname, 7);
}
$dp .= " KEY $kname ($colnames)";
}
}
$dp .= "\n);\n\n";
$rows = mysqli_query($link, "SELECT * FROM $table");
$numfields = mysqli_num_fields($rows);
while ($row = mysqli_fetch_array($rows))
{
$dp .= "INSERT INTO $table VALUES(";
$fieldcounter = -1;
$firstfield = 1;
while (++$fieldcounter
{
if (!$firstfield)
{
$dp .= ' , ';
}
else
{
$firstfield = 0;
}
if (!isset($row[$fieldcounter]))
{
$dp .= 'NULL';
}
else
{
$dp .= "'" . mysqli_escape_string($link, $row[$fieldcounter]) . "'";
}
}
$dp .= ");\n";
}
mysqli_free_result($rows);
return $dp;
}
$table = mysqli_query($link, "SHOW tables");
unset($temp_buffer);
while ($row = mysqli_fetch_array($table))
{
if (!empty($row[0]))
{
$temp_buffer = dumptb($row[0]) . "\n\n\n";
}
}
$file_name = "backup_sql_" . date("d-m-Y") . ".txt";
$filehandle = fopen($file_name, 'w');
$result = mysqli_query($link, "SHOW tables");
while ($row = mysqli_fetch_array($result))
{
fwrite($filehandle, dumptb($row[0]) . "\n\n\n");
}
fclose($filehandle);
mysqli_close($link);
?>Tentei usar os dois scripts para backup mas nenhum funcionou. :(Ambos os casos, ao descompactar o diretório, não havia nenhum arquivo dentro. O que pode ser isso??
Se o servidor for linux, veja as permissões CHMOD.
não cheguei a testar,mas teria algum que funcione com php 4?