mysql php 如何插入超过1000的记录

firesky67 2011-12-30 02:06:09
说明 : $tmpwj为每行逗号分割的文本。运行时mysql只能插入1000条记录,之后便有一段时间连接不上数据库--#2003 数据库无响应。
$db=new procq();
foreach($tmpwj as $tk=>$tv){
$vljzfc='';

if($db->sfcf('djb',$tv[3],'')){
printf('数据有重复:',trim($tv[3]),'<br/>');
$cfhs=$cfhs+1;
}
else{
//连接value值字符串
$hh+=1;
if(strlen(trim($tv))!=19 and strlen(trim($tv))>1){
$har=explode(',',$tv);
foreach($har as $hk=>$hv){
$vljzfc=$vljzfc.",'".$hv."'";
}
//插入记录到数据库
$vljzfc=substr($vljzfc,1,strlen($vljzfc)-1);
//$zszs=$zszs.'('.$vljzfc.'),';


$db->inst('djb','j_bz,j_ssny,j_ywy,j_bdh,j_tbr,j_xz,j_llv,j_dkqq,j_dkzq,j_dkje,j_dh,j_hkzztb,j_hkrq,j_hkrxm,j_dqchr,j_lx,j_tzjg,j_tzjg2,j_bz1,j_bz2',$vljzfc,$hh)==true;
//{
//printf('数据导入成功!');

//}//else{
// printf('数据导入失败!');
// }
//
}
}


}
以下为类procq中inst部分的代码
function inst($tbname,$zds,$values,$dqhh){
$sqlstr='insert into '.$tbname.' ('.$zds.') values('.$values.')';
//echo $sqlstr;
$mysq=@new mysqli($this->host,$this->user,$this->pwd,$this->sjkm);
if(mysqli_connect_errno()){
printf('数据库连接失败!');
}else{

$mysq->query("set names 'gbk'");
$rslt=$mysq->query($sqlstr);
if(!$rslt){
printf('数据添加操作失败!');
return false;
}else{
return true;
}

$mysq->close();
// if($dqhh%300==0){
// sleep(10);
// }
}

}
...全文
201 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
焦sir 2011-12-30
  • 打赏
  • 举报
回复
SQL 放SESSION 里。。然后。。。慢慢跳转网页。慢慢刷。。。。
黄袍披身 2011-12-30
  • 打赏
  • 举报
回复
插一插暂停休息休息,别老插... 是不是 mysql 也给你插得叫苦连天嘛...

uiswengineer 2011-12-30
  • 打赏
  • 举报
回复
中午没睡。。纠结
xuzuning 2011-12-30
  • 打赏
  • 举报
回复
像你这样的数据,可用 mysql 的 load infile 指令直接导入,不必化作一条条的 insert 指令

另外,数据库连接值执行一次,有助于提高效率,至少不需要每条记录都执行 $mysq->query("set names 'gbk'"); 了
amani11 2011-12-30
  • 打赏
  • 举报
回复
$mysq=@new mysqli($this->host,$this->user,$this->pwd,$this->sjkm);


同一数据库,一个php进程创建一个数据库连接资源,,

21,886

社区成员

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

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