登陆

为何用mysqli_query()函数对mysql的表写入记录时只写入一部分然后提示出错?

问题出现在第四步中

一  对mysql进行链接时间,和内存设置

ini_set('max_execution_time','0');

ini_set("memory_limit", "1024M"); 

二  循环读取excel表格内容

for ($j=2; $j < $row_num; $j++) {

      for ($k='A'; $k <= $col_max; $k++) { 

           $sheetArr[$j][$k] = $currentSheet->getCell($k . $j)- >

          getFormattedValue(); 

       }

       $sqlWrite = "INSERT INTO " . $nameSQL ." SET " 

      . "var1=". "'".date("Y-m-d",strtotime($sheetArr[$j]['A']))."'".","

      . "var2=". "'".$sheetArr[$j]['B']."'".","

      . "var3=". $sheetArr[$j]['C'] .","

      . "var4=". $sheetArr[$j]['D'] ."';";

三   调试时屏幕输出mysql需要插入表的语句,

      在这步中如果将第四步注释掉,

      完全能够显示所有excel表格中的所有数据(20万条记录)

print_r($sqlWrite);

echo "\n";

四   将记录写入到mysql的$nameSQL表中,在这步中的两个语句都试过了,

          但是每次只写入不到一万条数据,

          然后提示可能出现的几种错误 1  修改伪静态, 2 更换PHP版本,

        3 正确修改站点的数据库配置文件         

       4  php禁用了某一函数,开启相关禁用函数等待   

      5 关闭防跨站处理   6 源码本身有BUG                // mysqli_query($con, $sqlWrite,MYSQLI_USE_RESULT); 

 mysqli_query($con, $sqlWrite); 

 }

那位老师帮忙看看,这到底是什么情况,非常感谢

错误提示图error.png

特大糊涂特大糊涂2020-08-06 22:33:46661 次浏览

全部回复(2)我要回复

  • phpsutdy-爱好者

    phpsutdy-爱好者2020-08-07 15:06:13

    一次操作上万条,只有一种 可能PHP执行超时了, 减少每次执行数量,比如 一千次,执行一次,用JS刷新页面,这样分批来处理就行了 

    回复
    0
  • 特大糊涂

    感谢猪哥回复,我试试

    特大糊涂 · 2020-08-07 15:41:50
  • 取消回复发送