首頁 >資料庫 >mysql教程 >如何在 PHP 應用程式中有效執行外部 *.sql 檔案?

如何在 PHP 應用程式中有效執行外部 *.sql 檔案?

Patricia Arquette
Patricia Arquette原創
2024-12-12 12:48:14127瀏覽

How Can I Effectively Execute External *.sql Files Within My PHP Applications?

在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 中的資料庫互動。

相關資源:

  • [從內部載入.sql 檔案PHP](https://stackoverflow.com/questions/2586/loading-sql- files-from-within-php)
  • [是否可以從另一個sql中的預存程序呼叫sql腳本腳本? ](https://dba.stackexchange.com/questions/216678/is-it-possible-to-call-a-sql-script-from-a-stored-procedure-in-another-sql-script)
  • [PHP:一個mysql_query 中的多個SQL查詢語句](https://stackoverflow.com/questions/27075986/php-multiple-sql-queries-in-one-mysql-query-statement)

以上是如何在 PHP 應用程式中有效執行外部 *.sql 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn