2010-06-05 158 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

相关问题