2010-06-05 159 views
1

我從數據庫中意外刪除了其中一個表。幸運的是,我有備份。 (我已經使用了「自動備份的MySQL」)php導入larg表到phpmyadmin數據庫

該表的備份存儲爲.txt文件(56兆字節)在我的電腦上。

我試圖通過PhpMyAdmin導入它,導入失敗,因爲該文件太大,無法導入。

然後我上傳文件到/ home/tablebk目錄。我有一些在PHP中的經驗。我知道我會用這段代碼導入它,但我不知道這個導入的sql語句。

什麼是必須作爲$line變量?

請幫我:(:(

<?php 

    $dbhost = 'localhost';   
$dbuser = 'mysite';   
$dbpw = 'password';   
$dbname = 'databasename'; 

$file = @fopen('country.txt', 'r'); 

if ($file) 
{ 
    while (!feof($file)) 
    { 
     $line = trim(fgets($file)); 
     $flag = mysql_query($line); 

     if (isset($flag)) 
     { 
      echo 'Insert Successfully<br />'; 
     } 

     else 
     { 
      echo mysql_error() . '<br/>'; 
     } 

     flush(); 
    } 

    fclose($file); 
} 

echo '<br />End of File'; 

?> 

回答

0

嘗試BigDump,其優雅和可靠地解決了這個問題。它基本上你想要做什麼,但更多的安全機制和幾種方法來重新啓動文件的中間部分,並且它有很好的進度指示器,並且...哦,它已經寫好了,所以你不需要編寫自己的腳本,也不需要重新發明輪子(我不隸屬於BigDump或其開發人員以任何方式)。

+0

我tryed它,通過當我去http://mysite.com/Bigdump/bigdump.php,該網頁顯示:內部服務器錯誤 服務器遇到一個內部錯誤或配置錯誤無法完成您的請求。 請與服務器管理員聯繫,告知發生錯誤的時間以及可能導致錯誤的任何事情。 – Alireza 2010-06-05 13:17:09

+0

您是否按照我鏈接到的頁面上的文檔插入了數據庫配置?嘗試閱讀常見問題解答。 – MvanGeest 2010-06-05 13:19:35

+0

不,我沒有改變那個文件,讓我看看:( – Alireza 2010-06-05 13:22:51

1

爲什麼不使用MySQL的batch commands

shell> mysql db_name < text_file

+0

大多數廉價的託管服務提供商不允許shell訪問,但它肯定是最快和最直接的方式。 – MvanGeest 2010-06-05 13:18:06

+0

我怎麼能去tho殼?它是一個共享主機,我只能訪問phpmyadmin和主目錄,請幫助:( – Alireza 2010-06-05 13:19:00

+0

這就是我害怕...殼似乎不是一個選項:( – MvanGeest 2010-06-05 13:20:08

相關問題