2011-10-20 37 views
4

我有幾乎100MB的example.sql文件。 (實際上是從另一個數據庫導出數據的文件)如何在PHP中執行mysql腳本文件?

我想讓用戶能夠通過我的應用程序中的某個界面運行此文件。 你能指導我怎麼做?我應該把它當作簡單的文本文件嗎?要麼有快捷方式?

換句話說,我想添加與我們在phpMyAdmin中相同的功能,即導入功能。

如果你可以參考我的一些關於PHPclass.org的課程,那將會很棒。

+0

讓用戶上傳該文件,並將其推入'mysqldump'或類似的東西 – user973254

回答

4
function import_file($filename){ 
    if ($file = file_get_contents($filename)){ 
     foreach(explode(";", $file) as $query){ 
      $query = trim($query); 
      if (!empty($query) && $query != ";") { 
       mysql_query($query); 
      } 
     } 
    } 
} 

可以

import_file("files/files.sql"); 

被稱爲但是,此功能將無法正常,如果文件中包含分號;比其他地方在查詢

+0

我只是想,似乎是最好的選擇。將回來選擇它作爲接受的答案:) –

+3

如果任何實際數據包含';',這將會令人生畏。但是,對於快速'骯髒,這是'夠好' –

+0

@MarcB:哇,甚至沒有想到這種情況。在那種情況下,會有很多事情需要考慮。 – genesis

2

的工作進行到底創建一個文件上傳表單允許可信用戶將文件上傳到服務器。然後從PHP調用mysql命令行工具將數據導入到數據庫中。如果導入的數據中有任何帶引號的分號,則試圖通過爆炸(「;」,...)執行此操作將失敗。