<?php
function save_data($data)
{
fwrite($this->dump_file_handle, $data) or
die(\"fwrite\"); }
function data(&$db, &$table)
{
$sql = mysql_query(\"SELECT * FROM `$db`.`$table`\"); for ($c=0;$c<$nr;$c++)
{
$this->save_data(\"INSERT INTO `$db`.`$table` VALUES (\");
for($d=0;$d<$nf;$d++)
{
{
$this->save_data(\"NULL\");
}else{
{
}else{
$this->save_data(\"'\".mysql_escape_string($data).\"'\");
}
}
if ($d < ($nf-1))
{
$this->save_data(\", \");
}
}
$this->save_data(\");n\");
}
$this->save_data(\"n\");
}
function tables_structure(&$db)
{
{
$table = $wiersz[0];
$this->save_data(\"DROP TABLE IF EXISTS `$db`.`$table`;n\");
$this->save_data(str_replace(\"`$table`\", \"`$db`.`$table`\", $tmp[1]) . \";nn\"); $this->data($db, $table);
}
}
function create_dump()
{
{
if($db[0] != \"mysql\")
{
$this->save_data(\"DROP DATABASE IF EXISTS `$db[0]`;n\");
$this->save_data(\"CREATE DATABASE `$db[0]`;nn\");
$this->tables_structure($db[0]);
}
}
}
?>
Przygotowałem klasę, która tworzy i przywraca backupy baz MySQL... By nie pokazywać całej klasy wyciąłem funkcje, które są niezbędne do zrobienia backupa...
Dla tej klasy tzeba obsłużyć jeszcze: otworzenie połącznia z bazą danych, otworzyć plik z dumpem i go zamknąć... ot i wszystko... jak spędzisz przy tym 1-2 godzinki, to wszystko stanie się jasne i przejrzste.
Dodam, że skrypt tworzy kopię wszystkich baz i tabel dostępnych dla daneo użytkownika. Jedynym wyjątkiem jest baza mysql, która nie powinna być w jaki kolwiek sposób ruszana...