使用PHP导入.sql文件到MySQL数据库_联想电脑文件数

日期:2014-07-13 / 人气: / 来源:网络

前面已经整理了 php备份mysql数据库为.sql格式文件 ,相反的,怎样用PHP把备份好的.sql文件内容导入到MySQL数据库中呢?

先看看生成的.sql文件:
DROP TABLE IF EXISTS jblog_class;   
  
CREATE TABLE `jblog_class` (   `id` int(10) NOT NULL auto_increment,   `classname` varchar(50) collate utf8_unicode_ci default NULL,   `showorder` int(10) default NULL,   `blogcount` int(10) default '0',   PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;   
  
insert into `jblog_class`(`id`,`classname`,`showorder`,`blogcount`) values('1','生活杂谈','0','8');   
insert into `jblog_class`(`id`,`classname`,`showorder`,`blogcount`) values('2','Web_Design','5','6');   
insert into `jblog_class`(`id`,`classname`,`showorder`,`blogcount`) values('3','PHP相关','1','31');   
insert into `jblog_class`(`id`,`classname`,`showorder`,`blogcount`) values('6','通用代码','4','5');   
insert into `jblog_class`(`id`,`classname`,`showorder`,`blogcount`) values('7','Window技巧','6','5');   
insert into `jblog_class`(`id`,`classname`,`showorder`,`blogcount`) values('8','文摘收藏','7','11');   
insert into `jblog_class`(`id`,`classname`,`showorder`,`blogcount`) values('9','相关政策','8','3');   
insert into `jblog_class`(`id`,`classname`,`showorder`,`blogcount`) values('10','船务&物流','9','3');   
  

在备份的时候,我将每条语句单独生成一行,这样就方便进行下面的恢复操作。我想到了下面的思路:

php读入SQL文件成字符串,每行一条语句,然后字符串转换成数组执行每句sql语句。

按照这个思路应该能实现,一步一步来:
$filename=$_GET['filename'];//恢复的源文件   
$msgstr='';   
$handle = @fopen("../bak/".$filename, "r");   
if ($handle) {   
    while (!feof($handle)) {   
        $sqlstr = fgets($handle);   
        if(strlen($sqlstr) >3) {   
            if(! mysql_query($sqlstr))   
                $msgstr.="下面语句执行错误:<br>".$sqlstr."<br>";   
        }   
    }   
    fclose($handle);   
    $msgstr.="../bak/".$filename." 导入完成";   
    require_once('showmsg.php');   
    redir("main.php?do=rebak",3000);   
}   
else {   
    $msgstr="../bak/".$filename."文件打开失败";   
    require_once('showmsg.php');   
    redir("main.php?do=rebak",3000);   
}  

上面代码中:

showmsg.php――显示指定提示信息$msgstr的文件模块

redir("main.php?do=rebak",3000);――页面在3秒钟之后跳转到main.php?do=rebak 地址

如何使用命令备份MySQL数据库

导读:mysql备份数据库命令@如何备份mysql数据库因为MySQL表保存为文件方式,很容易备份。要想保持备份的一致性,对相关表执行LOCKTABLES操作,然后对表执行FLUSHTABLES。你只需要读锁定;这样当你复制数据库目录中的文件时,允许其它客户继续

MySQL,mysql命令,

作者:管理员




现在致电4006-2991-90 OR 查看更多联系方式 →

Go To Top 回顶部