一个批量上传.支持断点续传的思路.

anziqi 2002-09-11 10:56:50
我这里有一个三十万条记录的库要上传到网上数据库中.

为了防止他超时所以要有断点续传功能.

谁有思路或代码.

提兄弟一把.

呵呵.谢谢各位大侠.
...全文
180 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
anziqi 2002-09-13
  • 打赏
  • 举报
回复
谢谢你.

我今天来了好象没有加分.

这些我有用的.好的我试试.

星期六星期天.我好好找找再整理.

昨天老总给我叫回去了没有办法.再整理.
vivanboy 2002-09-12
  • 打赏
  • 举报
回复
对于第一种方法,在linux下面可能不是data目录,而是mysql目录,自己找找就知道了
对于第三种,wasy以前写过一个备份程序。
vivanboy 2002-09-12
  • 打赏
  • 举报
回复
mysql数据库备份方法:
1.拷贝数据库源文件.你到mysql\data目录兄面看看,下面一个目录代表一个数据库。拷贝目录到另外一个服务器就是新建一个数据库了。linux下面注意扩展名大小写问题
2.mysqldump
3.自己写程序
vivanboy 2002-09-12
  • 打赏
  • 举报
回复
对于你的程序用一句sql语句就可以搞定了

create table dt_product select * from iwn.dt_product
anziqi 2002-09-12
  • 打赏
  • 举报
回复
可以这样吗:你是想用ftp软件将mysql目录上传上去

是怎么传的.这个东东放上去就可以用了吗?
vivanboy 2002-09-12
  • 打赏
  • 举报
回复
进入dos
mysql\bin目录下面有这个mysqldump命令,专门用来备份数据库的命令
可以将数据库倒入到文本。也可以直接copy到另外一个服务器

你直接敲入mysqldump就会出来帮助
anziqi 2002-09-12
  • 打赏
  • 举报
回复
<?php
/*_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-

Copyright limuyuan 2000-2008
批量上传
I'm Crazy Programmer anziqi
思路:
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-*/
session_start();
@$linkid = mysql_pconnect("localhost","root") or die (print "无法链接数据库!");
if(!$_SESSION['id'])
{
session_register('id','m');
$_SESSION['id']=0;
}
/*
if(!@mysql_select_db("test1"))
{
mysql_create_db("test1");
}
if(!@mysql_query("select count(*) from dt_product"))
{
$sql="CREATE TABLE dt_product ( tp_id int(11) NOT NULL auto_increment,tp_model varchar(254) default NULL, tp_type varchar(254) default NULL, tp_userid bigint(3) default NULL, tp_maker varchar(254) default NULL, tp_enc varchar(254) default NULL, tp_unit varchar(50) default NULL, tp_price int(11) default NULL, tp_stock int(11) default NULL, tp_notes text, tp_num int(11) default NULL, PRIMARY KEY (tp_id), KEY tp_userid (tp_userid), KEY tp_model (tp_model)) TYPE=MyISAM;";
@mysql_query($sql) or die (print "无法执行SQL语句!");
print "create ok";
}
*/
$resu=mysql_db_query("iwn","select * from dt_product where tp_id>".$_SESSION['id']);

while($aa=mysql_fetch_array($resu))

{

$sql_str="INSERT INTO `dt_product` (`tp_id`, `tp_model`, `tp_type`, `tp_userid`, `tp_maker`, `tp_enc`, `tp_unit`, `tp_price`, `tp_stock`, `tp_notes`, `tp_num`) VALUES ('".$aa['tp_id']."','".$aa['tp_model']."', '".$aa[tp_type]."', '".$aa[tp_userid]."', '".$aa[tp_maker]."',' ".$aa[tp_enc]."',' ".$aa[tp_unit]."',' ".$aa[tp_price]."', '".$aa[tp_stock]."',' ".$aa[tp_notes]."',' ".$aa[tp_num]."')";
mysql_db_query("test1",$sql_str);
print $_SESSION['id']=$aa['tp_id'];
$_SESSION['m']++;
print "已经添加了".$_SESSION['m']."<br>";



}
print "添加完成";

?>

这是我的一个程序就是一条条的添加了,但是有一个问题就是他会超时.
所以我为了防止他超时在select上作了一个session来记录id值.

那种加多少条.跳转一下的方面我也用了.但也会出现超时现象.

而且慢.如果是用这种程序来做的话.大侠们有没能好的办法.

我真的太笨了.
anziqi 2002-09-12
  • 打赏
  • 举报
回复
谢老兄.我有点笨.问清楚一点.

我用的是windows xp兄台说的这个东东我真的没有用过.

你能加上注释吗?

在那里运行.谢谢.我太笨了.
vivanboy 2002-09-12
  • 打赏
  • 举报
回复
or:

backup:
mysqldump --opt databaseName > backup-file.sql
restore:
mysql databaseName < backup-file.sql

vivanboy 2002-09-12
  • 打赏
  • 举报
回复
mysqldump --opt database | mysql --host=remote-host -C database

直接将数据库dump另外一个mysql服务器上

ipman 2002-09-12
  • 打赏
  • 举报
回复
dump出来,然后ftp上去,然后在服务器上做个脚本import进数据库
phpteam 2002-09-12
  • 打赏
  • 举报
回复
我不发表任何意见!昨天开始肚子闹情绪,今天也一样,要去看医生了,拜拜
vivanboy 2002-09-12
  • 打赏
  • 举报
回复
先up

你是想用ftp软件将mysql目录上传上去,还是用程序insert上去

anziqi 2002-09-12
  • 打赏
  • 举报
回复
具体一点好吗?

象你说的那种我已经编了一个了.不过我感觉不理想.

你能说的详细一点或给个程序吗?这个不是大程序几行代码出来了.

谢谢各位大侠了.
vivanboy 2002-09-12
  • 打赏
  • 举报
回复
提示错误,可能是因为里面有#,这是phpmyadmin的bug
你可以自己写程序
vivanboy 2002-09-12
  • 打赏
  • 举报
回复
另外一台服务器是linux吗
你到底有没有那台服务器的权限???

如果你有ftp用户名和密码,以及mysql数据库目录的写权限,你才可以用ftp的方法将文件上传上去

否则你只有用程序来实现。当然phpmyadmin也是程序。
你如果用phpmyadmin导出,可以将倒出的语句一部分一部分的执行。

你也可以用你上面提供的程序,每次循环的时候先检查程序已经化了多长时间
,如果快到超时时间,记下当前的循环次数$n,并存为session,然后重新转向该页再执行一次,不过这时候要用mysql_data_seek直接转到记录集的第$n行,然后再循环,$n递加,如此循环就会下去就可以搞定
anziqi 2002-09-12
  • 打赏
  • 举报
回复
用了.行是行.
在导入的时候那个大的数据库导入一会就会跳出.

并提示出错.
phpteam 2002-09-12
  • 打赏
  • 举报
回复
用PHPMYADMIN导出不行吗???
anziqi 2002-09-12
  • 打赏
  • 举报
回复
这种方面我应该用了.还是不行.

导到一半的时候跳出来了.跟没有导一样.

所以放弃.
phpteam 2002-09-12
  • 打赏
  • 举报
回复
MYSQLDUMP是将数据库生成SQL语句的形式存放的,导入的时候就等于执行这些SQL语句。
你上面这个错误应该不是超时错误。
加载更多回复(13)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧