Bei der Entwicklung und Wartung von Webanwendungen ist die regelmäßige Sicherung von Datenbanken eine wichtige Aufgabe, um die Datensicherheit zu gewährleisten. Die Sicherungsdateien für Verpackung von Datenbank -Sicherungsdateien in komprimierte Pakete können nicht nur den Speicherplatz effektiv sparen, sondern auch die Verwaltung erleichtern. Die Ziparchive -Klasse von PHP bietet eine einfache und leistungsstarke Möglichkeit, mit den komprimierten Paketen für ZIP -Format zu handhaben. In diesem Artikel wird im Detail eingeführt, wie Datenbanksicherungen über die PHP -Ziparchive -Klasse in .zip -Dateien komprimiert werden.
Bevor Sie die Ziparchive -Klasse verwenden, müssen Sie zunächst sicherstellen, dass PHP ZIP -Erweiterungen aktiviert hat. Suchen und aktivieren Sie die folgenden Konfigurationselemente in der Datei php.ini:
<span class="fun">Erweiterung = ZIP</span>
Wir müssen eine Ziparchive -Instanz erstellen und sie verwenden, um eine neue Zippack -Datei zu öffnen. Hier sind die zugehörigen Code -Beispiele:
<span class="fun">$ zip = neu ziparchive ();</span>
<span class="fun">$ zipname = 'backup_'. Datum ('ym-d_h-is'). '.Reißverschluss';</span>
<span class="fun">if ($ zip-> open ($ zipname, ziparchive :: create | ziparchive :: overwrite) === true) {</span>
<span class="fun">// Der Code zum Hinzufügen der Datenbanksicherungsdatei wird hier platziert</span>
<span class="fun">$ zip-> close ();</span>
<span class="fun">} anders {</span>
<span class="fun">exit ('Die Reißverpackungsdatei kann nicht öffnen');</span>
In diesem Code verwenden wir die Funktion von PHP `date ()`, um einen dynamischen Dateinamen basierend auf dem aktuellen Datum und Uhrzeit zu generieren und den Ziparchive -Eröffnungsmodus auf "Ziparchive :: Create | Ziparchive :: overwrite`, was bedeutet, dass sie überschrieben wird, wenn die Datei bereits existiert.
Als nächstes fügen wir die Datenbanksicherungsdatei zum Reißverschlusspaket hinzu. Als Beispiel verwenden wir den Befehl "mySqldump", um Datenbanksicherung durchzuführen und die Sicherungsdatei der .ZIP -Datei hinzuzufügen:
<span class="fun">$ dbhost = 'localhost';</span>
<span class="fun">$ dbusername = 'userername';</span>
<span class="fun">$ dbpassword = 'Passwort';</span>
<span class="fun">$ dbname = 'database_name';</span>
<span class="fun">$ backupFile = 'database_backup.sql';</span>
<span class="fun">$ command = "mysqldump---Single-transaktion-host = $ dbhost --user = $ dbusername-password = $ dbpassword $ dbname> $ backupFile";</span>
<span class="fun">System ($ Command);</span>
<span class="fun">$ zip-> addfile ($ backupFile);</span>
Über den obigen Code unterstützen wir die MySQL -Datenbank über den Befehl "mysqldump" in eine SQL -Datei und fügen dann die Sicherungsdatei zum erstellten komprimierten Paket hinzu. Beachten Sie, dass die Sicherungsdatei vorhanden ist, bevor die Methode adFile () `aufgerufen wird.
Nachdem die Datei hinzugefügt wurde, müssen wir die ZIP -Paketdatei schließen und die temporäre Sicherungsdatei löschen. Das Folgende ist der entsprechende Code:
<span class="fun">$ zip-> close ();</span>
<span class="fun">UNLINK ($ BACKUPFILE);</span>
<span class="fun">Echo 'Die Datenbanksicherung war erfolgreich! ';</span>
In diesem Code haben wir zuerst das ZIP -Paket geschlossen und dann die Funktion "Unlink ()` die lokale Sicherungsdatei gelöscht, da sie dem ZIP -Paket erfolgreich hinzugefügt wurde.
Hier ist ein vollständiger Code -Beispiel, der demonstriert, wie Datenbanksicherung implementiert und in eine .zip -Datei komprimiert wird:
<span class="fun">$ zip = neu ziparchive ();</span>
<span class="fun">$ zipname = 'backup_'. Datum ('ym-d_h-is'). '.Reißverschluss';</span>
<span class="fun">if ($ zip-> open ($ zipname, ziparchive :: create | ziparchive :: overwrite) === true) {</span>
<span class="fun">$ dbhost = 'localhost';</span>
<span class="fun">$ dbusername = 'userername';</span>
<span class="fun">$ dbpassword = 'Passwort';</span>
<span class="fun">$ dbname = 'database_name';</span>
<span class="fun">$ backupFile = 'database_backup.sql';</span>
<span class="fun">$ command = "mysqldump---Single-transaktion-host = $ dbhost --user = $ dbusername-password = $ dbpassword $ dbname> $ backupFile";</span>
<span class="fun">System ($ Command);</span>
<span class="fun">$ zip-> addfile ($ backupFile);</span>
<span class="fun">$ zip-> close ();</span>
<span class="fun">UNLINK ($ BACKUPFILE);</span>
<span class="fun">Echo 'Die Datenbanksicherung war erfolgreich! ';</span>
Mit dem obigen Code können wir die Datenbanksicherungsdatei mit der PHP -Ziparchive -Klasse problemlos in eine .zip -Datei komprimieren. Dieser Ansatz vereinfacht nicht nur den Sicherungsprozess, sondern macht auch die Verwaltung und Speicherung von Sicherungsdateien effizienter. Sie können den Code nach Ihren Anforderungen ändern und anpassen, um sich an verschiedene Datenbank- und Sicherungsanforderungen anzupassen.