Dump af Mysql-DB, men ikke alle tabeller
Hejsa.Jeg har hidtil benyttet et php-script til at tage backup af SQL-database, men opdager, at der er nogle formateringer i backup-filen, som phpMyAdmin ikke er glad for.
Jeg har så leget med nedenstående simple script, som fungerer perfekt.
Det dumper hele databasen og gemmer som ZIP-fil.
Men jeg har 2 tabeller, som jeg ikke ønsker medtaget i backup'en.
Kan nogen se en løsning til, hvordan det kan klares. Det ser ud til, at der anvendes en SQL-kommando til at dumpe databasen, så jeg vil tro, at der skal en helt anden kode til, hvor tabelnavnene indlæses i et array, og derefter fjernes de ekskluderede. Det er sådan et script, jeg har benyttet hidtil.
// Validate the input
if (empty($host) || empty($username) || empty($password) || empty($database) || empty($outputPath)) {
return false;
}
// Connect to the MySQL server
$conn = mysqli_connect($host, $username, $password, $database);
if (!$conn) {
return false;
}
// Create a temporary file for the SQL dump
$tempFile = tempnam(sys_get_temp_dir(), 'db_export_');
// Export the database to the temporary file
$command = "mysqldump --host={$host} --user={$username} --password={$password} {$database} > {$tempFile}";
exec($command, $output, $returnCode);
if ($returnCode !== 0) {
return false;
}
// Create a zip file and add the SQL dump file to it
$zip = new ZipArchive();
if ($zip->open($outputPath, ZipArchive::CREATE) !== true) {
return false;
}
$zip->addFile($tempFile, "{$database}.sql");
$zip->close();
// Delete the temporary file
unlink($tempFile);
return true;
}