标题:
SQL备份大过2M,没有怕!----SQL文件切割器 v0.00001
[打印本页]
作者:
ttmax
时间:
2006-8-8 06:36 PM
标题:
SQL备份大过2M,没有怕!----SQL文件切割器 v0.00001
<html>
<head>
<title>SQL文件切割器 v0.00001</title>
</head>
<?php
/////////////////////////////////////////////
//昨天用myAdmin导入数据库的时候,因为数据库文件大于了2M,所以失败了
//手动?太麻烦了,上网找个分割文件的工具,太笨了,没找到,就自己
//这是一个主要用来分割备份的mysql数据库文件,现在还非常简陋,<img src="images/smilies/frown.gif" border="0" alt="">
//它通过文件的回车符来判别行数,可以判别此行是否为一句完整的sql语句,
//如果不是的话,就继续读取下一行....
//嗯...就是这样了..现在还不能指定保存的范围,有时间会写吧...
//哦对,我是thenorman.com/bbs混的坛主Norman
/////////////////////////////////////////////
//每次读取多少行的代码,以"/n"来分辨
$per=300;
//生成的文件由三部分组成,序号+前缀+文件名
$pre='_';
//要切割的文件名,要和程序放在同一个目录,而且此目录要有可写权
$filename='post.sql';
$start=0;
$block=0;
//$end=;
if(!isset($start)) $start=0;
if(!isset($block)) $block=0;
if(file_exists($filename)){//文件存在则
$array=file($filename);
$rowtotal=sizeof($array);
echo "数据库文件共有 <font color=red><b>".$rowtotal."</b></font> 行.<br>";
echo "现在开始分割文件,please wait... <br><br>";
while($start<$rowtotal){
$fp=fopen("$block$pre$filename","a+");
$i=$start;
if($i+$per>$rowtotal){
echo "写入 $i 到 ".$rowtotal." 行到$block$pre$filename.....";
}else{
echo "写入 $i 到 ".($start+$per)." 行到$block$pre$filename.....";
}
while($i<($start+$per)){
@fwrite($fp,$array[$i]);
$i++;
if($i>$rowtotal) break;
}
echo "完成<br><br>";
$start=$i;
fclose($fp);
while(@strlen($array[$start-1])==(@strrpos($array[$start-1],";")+1)){
$addfp=fopen("$block$pre$filename","a+");
@fwrite($addfp,$array[$start]);
$start++;
if($start>$rowtotal) break;
}
$block++;
}
echo "<br><br><br>OoooooooooK,全部完成~";
}else{
echo "指定的 $filename 不存在,请检查.....";
}
?>
</html>
作者:
Rain
时间:
2006-8-28 12:57 PM
哈 就事不知道 好用不好用
作者:
王飞强
时间:
2006-9-12 03:20 PM
还是用工具,太难屯也
欢迎光临 梦游时光互联 (http://web.meyu.net./)
Powered by Discuz! 4.0.0