使用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命令,
作者:管理员
推荐内容 Recommended
- 江苏飞浩信息科技期待您的加入07-20
- 江苏飞浩科技欢迎您07-19
相关内容 Related
- 江苏飞浩信息科技期待您的加入07-20
- 江苏飞浩科技欢迎您07-19