Backup MySQL-Datenbank mit CodeIgniter
Bin ich auf der Suche in der Bedienungsanleitung, die kam mit CodeIgniter. Ich wurde sehr daran interessiert, mit der dbutil()
Methode. Besonders die folgende Zeile des Codes:
//Load the DB utility class
$this->load->dbutil();
//Backup your entire database and assign it to a variable
$backup =& $this->dbutil->backup();
//Load the file helper and write the file to your server
$this->load->helper('file');
write_file('/path/to/mybackup.gz', $backup);
//Load the download helper and send the file to your desktop
$this->load->helper('download');
force_download('mybackup.gz', $backup);
Soll es zur Sicherung des aktuell geladenen MySQL-Datenbank. Aber leider, es funktioniert nicht und ich bekomme folgende Meldung:
Einen PHP-Fehler aufgetreten
Severity: Notice
Message: Undefined property: CI_Loader::$dbutil
Mit dem Namen: views/view.php
Line Number: 10
Fatal error: Call to a member function Datensicherung() on a non-object in
C:\xampp\htdocs\CodeIgniter\application\views\view.php in Zeile 10
Was vermisse ich hier? Jede Hilfe wäre wirklich zu schätzen.
- Ist die Haupt-DB-Klasse geladen ist (geladen oder nicht geladen werden durch
$this->load->database();
)? Auch, wie Sie kommen, Sie werden immer diese Fehlermeldung auf einem Blick, sollte dies nicht backup-code werden auf einem controller? - Sie müssen entfernen, die letzten beiden Zeilen aus deinem obigen code.
- Code, der ausgeführt werden soll, wird im inneren ein controller, keine Sicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese, Sie können ändern, format zip, gz, wenn du willst 🙂
tun, die mit php funktioniert nur bei sehr kleinen Datenbanken. Sie werden sehr schnell ausführen in den Speicher-Grenzen - wenn Sie erhöhen, dass andere performance-Probleme.
Was am besten funktioniert, ist das erstellen einer dump mit mysqldump:
natürlich müssen Sie über die erforderlichen Berechtigungen zu tun.
passthru
überexec
hier?Einfache Möglichkeit, backup-Datenbank mithilfe von codeigniter
Wenn Sie Glück genug, um eine der
exec()
,shell_exec()
,system()
oderpassthru()
auf Ihrem server aktiviert. Vielleicht würden Sie wollen, um die folgenden:Versuchen, diese...es wurde getestet..., wenn Sie verwenden, mysqli dann wird es einwandfrei funktioniert...kann man den code im controller oder Modell, aber ich schlage vor, halten diese eine in your_model & rufen Sie diese Funktion auf aus your_controller...
Ich bin extrem neu auf CodeIgniter, aber es gelang mir, das zu tun diese Sicherung. Versuchen Sie dieses, es arbeitet erfolgreich und ist sehr einfach zu implementieren. Schreiben Sie den code in Ihr controller und rufen Sie die Funktion auf aus Ihrer Sicht-Seite, die für backup verwenden. Get set, go, und Sie sind fertig.
Ihre gesamte backup-Anwendung, führen Sie die gleiche Prozedur mit dem folgenden code:
Hier können Sie einen beliebigen Pfad Ihrer Wahl.
Diese Linien wurden packte aus codeigniters Dokumentation:
Bitte überprüfen Sie, ob Ihre Datenbank-Klasse geladen wird oder nicht, wenn Sie diese Funktion aufrufen. Oder Sie können setzen Sie diese Zeile vor dem laden der dbutil Klasse
$this->load->database();
Versuchen, diese!
Das problem ist, dass Sie versuchen, ein backup der Datenbank sehr früh beim bootstrapping.
Ich lief in das gleiche problem, als ich versucht habe zu hacken CodeIgniter in die Sicherung meiner Datenbank mit:
unten meine
config.php
Datei.Verschieben Sie diese, um ein Modell einer ermöglichen, es zu laden, und Sie werden in Ordnung sein.
Keine Notwendigkeit zum hinzufügen von
base_url()
im Pfad