自己手工填写的的数据能读取并插入数据库,大批量时就不行
开始怀疑是数据格式有问题,把excel转成UTF-8的csv格式读取插入,还是不行
于是把sql语句输出
在mysql执行sql语句就没问题
这是什么原因那么奇怪的?

解决方案 »

  1.   

    是不是有一部分的sql是不行的。你没有检测到。减少导如的数据试试可以吗。如果可以就是有的数据组织sql有问题。
      

  2.   

    excel格式和读取的时候是不是有冲突,数字与字符串的格式是否分开。
      

  3.   

    下面是我摘来的读取excel数据然后插入数据库的代码:
    1.< ?php  
    2.function getmicrotime(){  
    3.list($usec, $sec) = explode(” “,microtime());  
    4.return ((float)$usec + (float)$sec);  
    5.}  
    6.?> 
    1.< ?php  
    2.$time_start = getmicrotime();  
    3.include(”db.inc.php”);//连接数据库  
    4.$db=new testcsv;  
    5.?> 
    6.< ?php  
    7.$handle = fopen (”test.csv”,”r”);  
    8.$sql=”insert into scores(idcard,names ,num,sex,nation,score) values(’”;  
    9.while ($data = fgetcsv ($handle, 1000, “,”)) {  
    10.$num = count ($data);  
    11.for ($c=0; $c < $num; $c++) {  
    12.if($c==$num-1){$sql=$sql.$data[$c].”‘)”;break;}  
    13.$sql=$sql.$data[$c].”‘,’”;  
    14.}  
    15.print “< br>”;  
    16.echo $sql.”< br>”;  
    17.$db->query($sql);  
    18.echo “SQL语句执行成功!< br>”;  
    19.$sql=”insert into scores(idcard,names ,num,sex,nation,score) values(’”;  
    20.}  
    21.fclose ($handle);  
    22.$time_end = getmicrotime();  
    23.$time = $time_end – $time_start;  
    24.echo “程序执行时间:”.$time.”秒”;  
    25.?> 
    原文地址:http://www.phpnewer.com/index.php/Ymgx/detail/id/41