这个问题不时出现。没有直接从PHP运行.sql脚本的好的解决方案。在某些情况下,.sql脚本中常见的语句不能作为SQL语句执行。例如,MySQL的工具已经内置命令不是由MySQL服务器的认可,例如
CONNECT,
TEE,
STATUS,和
DELIMITER。
所以我给+1 @Ignacio Vazquez-
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');另请参阅我对以下相关问题的回答:
- 从PHP内加载.sql文件
- 是否可以从另一个sql脚本中的存储过程中调用sql脚本?
- PHP:在一个mysql_query语句中进行多个SQL查询



