for($i=1;$i<=10000;$i++){
$sql="insert into l(name,age,info) values('名字$i',$i,'介绍$i')";
mysql_query($sql);
}我这样的插入方法..大概插入300条左右就:
Fatal error: Maximum execution time of 30 seconds exceeded in D:\Backup\phptest\index.php on line 9请问有什么改良的办法不?

解决方案 »

  1.   

    $sql="insert into l(name,age,info) values"
    for($i=1;$i <=10000;$i++){
     $sql.="('名字$i',$i,'介绍$i'),";} 
    $sql=substr($sql,0,-1);
    mysql_query($sql);
      

  2.   


    set_time_limit(0);//加上不限时
    for($i=1;$i <=10000;$i++){
    $sql="insert into l(name,age,info) values('名字$i',$i,'介绍$i')";
    mysql_query($sql);

      

  3.   

    for($i=1;$i <=10000;$i++){ 
    $sql="insert into l(name,age,info) values('名字$i',$i,'介绍$i')"; 
    mysql_query($sql); 
    }sql 编在一起
     一次直接
    $sql="insert into l(name,age,info) values";
    for($i=1;$i <=10000;$i++){ 
    $sql .="('名字$i',$i,'介绍$i'),"; }
    $sql = substr($sql,0,-1);
    mysql_query($sql); 
      

  4.   

    二楼的方法基本上是可行的!
    不过当一次性插入的数量大了的话
    难道数据库里面的最大memory就不会die吗?
    10000条哥们我没有测试,这要看内容的多少
    不过还有一种方法可以试试
    将$i做为跳转的页数,在脚本中加以控制让其按指定的一次执行sql次数去自动执行
    这样一来的话就不会有memory和超时的限制了
    当然这个只是个方法,不一定适合你的要求(毕竟哥们要插入的名字...)
      

  5.   

    这是MySQL问题,和PHP没关
    没用过MySQL插入很多数据么比如有个表stu,字段为 id, name, age; 你可以这样插入数据INSERT INTO stu(id, name, age) VALUES(1,'BB',33), (2,'CC',43),(3, 'CCDD',44);
    后面可以无限延伸
    自己在数据库里建个表,试一下就知道了
    所以,你这儿先构造好VALUES后面的字符,然后组合这个语句就行,别在那儿构造一个执行一句,效率太低了
      

  6.   

    哈哈..用
    $sql="insert into l(name,age,info) values"; 
    for($i=1;$i <=30000;$i++){ 
    $sql .="('名字$i',$i,'介绍$i'),"; 

    $sql = substr($sql,0,-1); 
    mysql_query($sql); 一次插入3万..4万就不行了..不知道什么原因..这个速度好快..1秒就插入3W..
      

  7.   

    首先是设置set_time_limit,其次是把VALUES后面的那些值并成一句字符串,这样会提高INSERT速度。
    比较快的原因是你每执行一次mysql_query,MYSQL都会进行一次解析的过程,以1W笔数据来说,1w次和1次的速度相比,可想而知。
      

  8.   

    执行超时了。加上
    set_time_limit(0);
      

  9.   

    职位要求:
    1.熟悉PHP语言,能自己解决实际问题。
    2.能书写常用的SQL语句。
    3.熟悉HTML/Javascript/等WEB技术
    4.至少有一年以上的PHP工作经验
    5.工作积极主动,比较踏实,责任心强。符合以下条件者优先:
    在linux环境下能简单操作和配置一些常用服务。
    对cakephp或者symfony框架有丰富的开发经验(不做必须要求);工作地点:北京海淀区知春路紫金数码3#909
    薪水待遇:面议
    联系人:徐小姐
    邮箱:[email protected]
    公司网址:http://www.fp-star.com
    公司简介:  北京五极星信息系统技术有限公司成立于2005年7月。是一家综合软件产品服务提供商。公司位于中关村知春路紫金数码园,是拥有多个具有自主知识产权产品的高科技企业。
    除去自主软件产品研发以外,公司同时还提供对日软件开发服务。经过多年的积累,目前公司拥有一批优秀的软件工程师,能为客户提供从基本业务分析一直到系统详细设计、开发、测试、售后服务等一系列的优质服务。
      

  10.   

    for($i=1;$i <=100;$i++){
        for($j=1;$j <=100;$j++){
            $sql .="insert into l(name,age,info) values('名字$i*$j',$i*$j,'介绍$i*$j');"; 
        }
        mysql_query($sql); 
    } 将10000次的insert操作减少为100次,每次执行100条,效率会明显提升。你可以随意控制最外层的循环次数
      

  11.   

    我对用拼SQL的方式(4#和13#)的方法有些concern。众所周知,string的操作是很费内存和资源的。频繁的使用$str.="...."这样的方法构造新的字符串可能引起内存频繁分配、释放,也会影响运行效率。针对LZ的问题,我的建议是用带参数的存储过程来做。为了进一步加快速度,可以考虑在插入的时候,暂时关闭这些字段牵涉到的索引。