Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie exportiere ich eine MySQL-Datenbank mit PHP mit einem benutzerdefinierten Download-/Speicherort?

Patricia Arquette
Freigeben: 2024-11-15 01:19:02
Original
838 Leute haben es durchsucht

How to export MySQL database using PHP with user-defined download/save location?

MySQL-Datenbank mit PHP exportieren

Hintergrund

Das Exportieren von Datenbanken ist für die Datensicherung von entscheidender Bedeutung. Wiederherstellungs- und Migrationszwecke. Dieser Artikel bietet eine umfassende Lösung zum Exportieren von MySQL-Datenbanken mit PHP.

Datenbank exportieren

Der vorgestellte PHP-Code exportiert die Datenbank nahtlos in eine Datei mit dem Namen „backup.sql“. " Es fehlt jedoch die Kontrolle des Benutzers über den Speicherort und die Herunterladbarkeit. Dieser Artikel behebt diese Einschränkungen durch die Verbesserung des Codes.

Erweiterter PHP-Code

Unten finden Sie den erweiterten PHP-Code, der dem Benutzer die Kontrolle über die Speicher- und Downloadoptionen bietet:

$DB_HOST = "localhost";
$DB_USER = "root";
$DB_PASS = "admin";
$DB_NAME = "dbname";

$con = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);

$tables = array();

$result = mysqli_query($con, "SHOW TABLES");
while ($row = mysqli_fetch_row($result)) {
    $tables[] = $row[0];
}

$return = '';

foreach ($tables as $table) {
    $result = mysqli_query($con, "SELECT * FROM " . $table);
    $num_fields = mysqli_num_fields($result);

    $return .= 'DROP TABLE ' . $table . ';';
    $row2 = mysqli_fetch_row(mysqli_query($con, 'SHOW CREATE TABLE ' . $table));
    $return .= "\n\n" . $row2[1] . ";\n\n";

    for ($i = 0; $i < $num_fields; $i++) {
        while ($row = mysqli_fetch_row($result)) {
            $return .= 'INSERT INTO ' . $table . ' VALUES(';
            for ($j = 0; $j < $num_fields; $j++) {
                $row[$j] = addslashes($row[$j]);
                if (isset($row[$j])) {
                    $return .= '"' . $row[$j] . '"';
                } else {
                    $return .= '""';
                }
                if ($j < $num_fields - 1) {
                    $return .= ',';
                }
            }
            $return .= ");\n";
        }
    }
    $return .= "\n\n\n";
}

// User-defined download/save location variable
$download_path = isset($_GET['download_path']) ? $_GET['download_path'] : 'default_path'; // Set default path if not provided

$handle = fopen($download_path . '/backup.sql', 'w+');
fwrite($handle, $return);
fclose($handle);

if (isset($_GET['download']) && $_GET['download'] == true) {
    header('Content-Type: application/octet-stream');
    header("Content-Transfer-Encoding: Binary");
    header("Content-disposition: attachment; filename=\"backup.sql\"");
    echo $return;
    exit;
} else {
    echo "Success! Database exported to " . $download_path . "/backup.sql";
}
Nach dem Login kopieren

Code-Erklärung

Der erweiterte Code enthält jetzt Folgendes Funktionen:

  • Benutzerdefinierter Download-/Speicherort: Mit der Variablen $download_path können Benutzer den Download-Speicherort über den URL-Parameter download_path angeben.
  • Download-Option: Durch Hinzufügen des Download-Parameters zur URL (?download=true) wird die Datenbank direkt in die Datenbank des Benutzers heruntergeladen Browser.

Fazit

Dieser verbesserte PHP-Code bietet eine flexible Lösung für den Export von MySQL-Datenbanken und bietet sowohl manuelle Speicher- als auch direkte Download-Optionen. Es ermöglicht Benutzern eine bessere Kontrolle über ihre Datenbanksicherungs- und -wiederherstellungsanforderungen.

Das obige ist der detaillierte Inhalt vonWie exportiere ich eine MySQL-Datenbank mit PHP mit einem benutzerdefinierten Download-/Speicherort?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage