Zálohování databáze je jednou z nezbytných činností pro udržení bezpečnosti a integrity dat. Kromě samotného zálohování je také důležité, aby tyto zálohy byly efektivní a zabíraly co nejméně místa. Jedním z efektivních způsobů, jak toho dosáhnout, je komprese záloh pomocí formátu Gzip. V PHP je možné snadno vytvořit skript, který nejen zálohuje databázi, ale také uloží zálohu do Gzip archivu.
Jak vytvořit PHP skript na zálohování databáze s uložením do Gzip:
-
Připojení k databázi: Začněte vytvořením spojení s databází pomocí PHP funkce mysqli_connect()
nebo vhodné alternativy.
-
Získání seznamu tabulek: Získejte seznam všech tabulek v databázi, které chcete zálohovat, pomocí SQL dotazu SHOW TABLES
.
-
Iterace přes tabulky: Projděte každou tabulku získanou v předchozím kroku.
-
Získání dat tabulky: Pro každou tabulku získejte všechna data pomocí SQL dotazu SELECT * FROM table_name
.
-
Uložení dat do Gzip souboru: Po získání dat každé tabulky je uložte do dočasného souboru a poté komprimujte pomocí funkce gzencode()
.
-
Uložení Gzip archivu: Nakonec uložte Gzip archiv do cílového adresáře s vhodným názvem.
Příklad PHP skriptu na zálohování databáze s uložením do Gzip:
<?php
// Připojení k MySQL databázi
$host = 'localhost';
$username = 'uzivatel';
$password = 'heslo';
$database = 'databaze';
$connection = mysqli_connect($host, $username, $password, $database);
if (!$connection) {
die("Chyba při připojení k databázi: " . mysqli_connect_error());
}
// Získání seznamu tabulek
$tables = mysqli_query($connection, "SHOW TABLES");
// Vytvoření prázdného Gzip archivu
$gzipData = '';
while ($row = mysqli_fetch_row($tables)) {
$table = $row[0];
// Získání dat tabulky
$result = mysqli_query($connection, "SELECT * FROM $table");
$data = '';
while ($row = mysqli_fetch_assoc($result)) {
$data .= var_export($row, true) . ";\n";
}
// Komprese dat do Gzip formátu
$gzipData .= gzencode($data, 9);
}
// Uložení Gzip archivu
$backupFilename = 'database_backup_' . date('Y-m-d_H-i-s') . '.gz';
file_put_contents($backupFilename, $gzipData);
// Uzavření spojení s databází
mysqli_close($connection);
echo "Záloha databáze byla úspěšně vytvořena a uložena do souboru '$backupFilename'.";
?>
Tento skript se spojí s MySQL databází, získá seznam tabulek, projde každou tabulku, získá její data a uloží je do Gzip archivu. Po dokončení zálohování se spojení s databází uzavře a skript zobrazí potvrzující zprávu s názvem vytvořeného Gzip archivu.
Tímto způsobem můžete jednoduše vytvořit PHP skript pro zálohování databáze s uložením do Gzip archivu, což zajišťuje kompaktní a účinnou zálohu vašich dat.