php导入大量数据到mysql(示例)
Libérer: 2016-07-25 08:54:58
original
1785 Les gens l'ont consulté
-
-
//快速Mysql的大数据备份
- //使用前请首先按照代码注释修改要导入的SQL文件名、数据库主机名、数据库用户名、密码、数据库名。
- //同时将数据库文件和文本一起ftp导网站目录,然后以WEB方式访问此文件即
- //edit: bbs.it-home.org
- $file_name="bn_site.sql";//要导入的SQL文件名
- $dbhost="localhost";//数据库主机名
- $dbuser="root";//数据库用户名
- $dbpass="";//数据库密码
- $dbname="bn_site"; //数据库名
- set_time_limit(0);//设置超时间为0,表示一直执行。当php在safe mode模式下无效此时就会导入超时,此时需要分段导入
- $fp=@fopen($file_name,"r") or die ("不能打开SQL文件");//打开文件
- mysql_connect($dbhost,$dbuser,$dbpass) or die("不能连接数据库"); //连接数据库
- mysql_select_db($dbname) or die("不能打开数据库");//打开数据库
- echo "正在执行导入操作";
- while($SQL=GETNEXTSQL()){
- if(!mysql_query($sql)){
- echo "执行出错:".mysql_error()."
";
- echo "SQL语句为:
".$SQL." ";
- };
}
- echo "导入完成";
fclose($fp) or die ("can"t close file $file"); //关闭文件
- mysql_close();
- //从文件中逐条取SQL
- function GETNETSQL(){
- 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);
- 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;
- }
- ?>
-
复制代码
|
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31