Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich das Auffüllen der MySQL-Datenbank aus einer PHP-Anwendung mithilfe von SQL-Dateien automatisieren?

Wie kann ich das Auffüllen der MySQL-Datenbank aus einer PHP-Anwendung mithilfe von SQL-Dateien automatisieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-09 20:24:25285Durchsuche

How Can I Automate MySQL Database Population from a PHP Application Using SQL Files?

Ausführen von MySQL *.sql-Dateien in PHP

Herausforderung: Automatisieren der Site-Generierung durch Ausführen von zwei *.sql-Dateien (Erstellen von Tabellen und Auffüllen von Datensätzen). ) aus einem PHP heraus Anwendung.

Lösung:

Während die direkte Ausführung von .sql-Skripten in PHP Einschränkungen aufweist, ist der Aufruf des MySQL-Tools über PHP eine effektive Lösung.

Verwenden von shell_exec():

Ein Ansatz ist die Verwendung shell_exec() zum Ausführen von MySQL-Befehlen.

$command = 'mysql'
        . ' --host=' . $vals['db_host']
        . ' --user=' . $vals['db_user']
        . ' --password=' . $vals['db_pass']
        . ' --database=' . $vals['db_name']
        . ' --execute="SOURCE ' . $script_path;
$output1 = shell_exec($command . '/site_db.sql"');
$output2 = shell_exec($command . '/site_structure.sql"');

Verwenden des Formats --option=value:

Um die Stabilität zu verbessern, verwenden Sie das Format --option=value und --execute="SOURCE ..." um Dateien auszuführen:

$command = "mysql --user={$vals['db_user']} --password='{$vals['db_pass']}' "
 . "-h {$vals['db_host']} -D {$vals['db_name']} < {$script_path}";
$output = shell_exec($command . '/shellexec.sql');

Zusätzlich Hinweise:

  • exec() und shell_exec() weisen geringfügige Unterschiede auf.
  • Es gibt Randfälle, in denen .sql-Skriptanweisungen nicht direkt als SQL ausführbar sind.
  • Der Aufruf von MySQL über PHP ist eine zuverlässige Möglichkeit, .sql-Dateien zu verarbeiten.

Das obige ist der detaillierte Inhalt vonWie kann ich das Auffüllen der MySQL-Datenbank aus einer PHP-Anwendung mithilfe von SQL-Dateien automatisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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