この質問は時々出てきます。 PHPから直接.sqlスクリプトを実行するための適切なソリューションはありません。 .sqlスクリプトで一般的なステートメントをSQLステートメントとして実行できないエッジケースがあります。たとえば、mysqlツールには組み込みコマンド
があります。 MySQLサーバーによって認識されないもの(例: CONNECT
、TEE
、STATUS
、およびDELIMITER
。
だから私は@IgnacioVazquez-Abramsのmysql
を呼び出して、PHPで.sqlスクリプトを実行する必要があります。 ツール、たとえば shell_exec()
。
このテストは機能しました:
$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');
これらの関連する質問に対する私の回答も参照してください:
- 内部からの.sqlファイルの読み込みPHP
- 別のSQLスクリプトのストアドプロシージャからSQLスクリプトを呼び出すことはできますか?
- PHP:1つのmysql_queryステートメントに複数のSQLクエリ