在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()
雖然) 和exec() 都執行外部指令,但shell_exec()在子 shell 中執行命令,而 exec() 在目前進程中執行命令,直到命令完成才返回。
進一步注意事項
對於廣泛的資料庫操作時,請考慮使用資料庫抽象層,例如 Zend_Db 或 Doctrine。這些層提供了一種更方便、更可靠的方式來與 PHP 中的資料庫互動。
相關資源:
以上是如何在 PHP 應用程式中有效執行外部 *.sql 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!