Deze vraag komt van tijd tot tijd naar voren. Er is geen goede oplossing om een .sql-script rechtstreeks vanuit PHP uit te voeren. Er zijn randgevallen waarbij instructies die gebruikelijk zijn in een .sql-script niet kunnen worden uitgevoerd als SQL-instructies. De mysql-tool heeft bijvoorbeeld ingebouwde opdrachten
die niet worden herkend door de MySQL Server, b.v. CONNECT
, TEE
, STATUS
, en DELIMITER
.
Dus ik geef +1 aan @Ignacio Vazquez-Abrams's antwoord
. U moet uw .sql-script in PHP uitvoeren door de mysql
. aan te roepen tool, bijvoorbeeld met shell_exec()
.
Ik heb deze test werkend gekregen:
$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');
Zie ook mijn antwoorden op deze gerelateerde vragen:
- .sql-bestanden van binnenuit laden PHP
- is het mogelijk om een sql-script aan te roepen vanuit een opgeslagen procedure in een ander sql-script?
- PHP:meerdere SQL-query's in één mysql_query-statement