Diese Frage taucht ab und zu auf. Es gibt keine gute Lösung, um ein .sql-Skript direkt von PHP aus auszuführen. Es gibt Grenzfälle, in denen Anweisungen, die in einem .sql-Skript üblich sind, nicht als SQL-Anweisungen ausgeführt werden können. Zum Beispiel hat das mysql-Tool eingebaute Befehle
die vom MySQL-Server nicht erkannt werden, z. CONNECT
, TEE
, STATUS
, und DELIMITER
.
Also gebe ich +1 für @Ignacio Vazquez-Abrams antworten
. Sie sollten Ihr .sql-Skript in PHP ausführen, indem Sie mysql
aufrufen Tool, zum Beispiel mit shell_exec()
.
Ich habe diesen Test zum Laufen gebracht:
$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');
Siehe auch meine Antworten auf diese verwandten Fragen:
- Laden von .sql-Dateien von innen heraus PHP
- Ist es möglich, ein SQL-Skript aus einer gespeicherten Prozedur in einem anderen SQL-Skript aufzurufen?
- PHP:mehrere SQL-Abfragen in einer mysql_query-Anweisung