日期:2014-05-17  浏览次数:20554 次

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

------解决方案--------------------
大批量导入时有没有报什么错误呢??
------解决方案--------------------
是不是有一部分的sql是不行的。你没有检测到。减少导如的数据试试可以吗。如果可以就是有的数据组织sql有问题。
------解决方案--------------------
分批次导入和检查数据格式 比如有的字符串带双引号什么的
------解决方案--------------------
excel格式和读取的时候是不是有冲突,数字与字符串的格式是否分开。
------解决方案--------------------
下面是我摘来的读取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