在 PHP 中执行 *.sql 文件:探索解决方案
直接从 PHP 执行 .sql 文件会带来独特的挑战,因为某些原因边缘情况。 .sql 脚本中常见的语句可能不会被识别为 SQL 语句。
首选解决方案:利用 mysql 工具
最有效的方法是利用mysql 工具并使用 shell_exec() 等函数从 PHP 调用它。这确保了与所有语句的兼容性。
使用 shell_exec() 的示例代码
$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"');
Shell_exec() 与 exec()
虽然 shell_exec() 和 exec() 都执行外部命令,但 shell_exec()在子 shell 中运行命令,而 exec() 在当前进程中运行命令,直到命令完成才返回。
进一步注意事项
对于广泛的数据库操作时,请考虑使用数据库抽象层,例如 Zend_Db 或 Doctrine。这些层提供了一种更方便、更可靠的方式来与 PHP 中的数据库进行交互。
相关资源:
以上是如何在 PHP 应用程序中有效执行外部 *.sql 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!