Ausführen von MySQL *.sql-Dateien in PHP
Beim Erstellen von Website-Datenbanken kann es vorkommen, dass Sie ausführen müssen. SQL-Dateien von PHP, um die Site-Generierung zu automatisieren. Während Zend_Framework von Vorteil sein kann, kann das Ausführen von .sql-Dateien direkt aus PHP aufgrund von Inkonsistenzen in SQL-Anweisungen eine Herausforderung sein.
Lösung: Verwendung von shell_exec()
Der empfohlene Ansatz besteht darin, das MySQL-Tool mit shell_exec() aufzurufen, um Ihr *.sql-Skript auszuführen. Hier ist ein Beispiel:
$command = 'mysql' . ' --host=' . $vals['db_host'] . ' --user=' . $vals['db_user'] . ' --password=' . $vals['db_pass'] . ' --database=' . $vals['db_name'] . ' --execute="SOURCE ' . $script_path ;
Dieser Befehl erstellt einen MySQL-Ausführungsbefehl mit den notwendigen Parametern, um die in $script_path angegebene *.sql-Datei auszuführen.
Unterschiede zwischen shell_exec() und exec()
Obwohl beide Funktionen externe Befehle ausführen, weisen sie einige Unterschiede auf. shell_exec() erfasst die Ausgabe des Befehls und gibt sie als Zeichenfolge zurück, während exec() den Status der Befehlsausführung zurückgibt. In diesem Fall wird Shell_exec() bevorzugt, um die Ausgabe des MySQL-Befehls zu erhalten.
Zusätzliche Überlegungen
Stellen Sie beim Ausführen von *.sql-Dateien sicher, dass der Befehl alle enthält die notwendigen Parameter (db_host, db_user, db_pass, db_name) und Sie verfügen über ausreichende Berechtigungen, um das Skript auszuführen. Verwenden Sie außerdem die Option --execute="SOURCE ..." anstelle von < um die Datei auszuführen.
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL *.sql-Dateien von PHP mit Shell_exec() ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!