前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql 大数据量导入程序

Mysql 大数据量导入程序

作者头像
一见
发布2018-08-07 14:29:29
1.2K0
发布2018-08-07 14:29:29
举报
文章被收录于专栏:蓝天蓝天

Mysql 大数据量导入程序

网络上转载许多都有错误,请注意代码的规范和正确性。 经测试以下代码是正确无错的,转载请保留版权,尊重程序作者!

代码语言:javascript
复制
/******************************************/
/* PhyMyAdmin Data Importer */
/* http://www.ebugs.org */
/* Copyright 富翁 in im286.com 2005.04.09 */
/* 转载请注明出处 */
/******************************************/
//用来快速Mysql的大数据备份
//使用前请首先按照代码注释修改要导入的SQL文件名、数据库主机名、数据库用户名、密码、数据库名
//同时将数据库文件和本文本一起ftp导网站目录,然后以web方式访问此文件即可
//落伍(www.im286.com)负翁版权所有,可随意使用,但保留版权信息
$file_name="a.sql"; //要导入的SQL文件名
$dbhost="localhost"; //数据库主机名
$dbuser="anonymous"; //数据库用户名
$dbpass=""; //数据库密码
$dbname="test"; //数据库名
set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
$fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件
mysql_connect($dbhost, $dbuser, $dbpass) or die("不能连接数据库 $dbhost");//连接数据库
mysql_select_db($dbname) or die ("不能打开数据库 $dbname");//打开数据库
echo "正在执行导入操作
";
while($SQL=GetNextSQL()){
 if (!mysql_query($SQL)){
 echo "执行出错:".mysql_error()."
";
 echo "SQL语句为:
".$SQL."
";
 };
}
echo "导入完成";
fclose($fp) or die("Can't close file $file_name");//关闭文件
mysql_close();
//从文件中逐条取SQL
function GetNextSQL() {
 global $fp;
 $sql="";
 while ($line = @fgets($fp, 40960)) {
 $line = trim($line);
 //以下三句在高版本php中不需要,在部分低版本中也许需要修改
 $line = str_replace("\\\\","\\",$line);
 $line = str_replace("\'","'",$line);
 $line = str_replace("\\r\\n",chr(13).chr(10),$line);
// $line = stripcslashes($line);
 if (strlen($line)>1) {
 if ($line[0]=="-" && $line[1]=="-") {
 continue;
 }
 }
 $sql.=$line.chr(13).chr(10);
 if (strlen($line)>0){
 if ($line[strlen($line)-1]==";"){
 break;
 }
 }
 }
 return $sql;
}
?>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2008-11-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档