getValue(); $a=ico"/> getValue(); $a=ico">

Home >Backend Development >PHP Tutorial > Excel导入mysql数据丢掉

Excel导入mysql数据丢掉

WBOY
WBOYOriginal
2016-06-13 13:00:431399browse

Excel导入mysql数据丢失
昨天晚上弄了一个晚上都没解决,来这里求助下,谢谢各位了

for($j=3;$j<=$highestRow;$j++)//表头不读取<br />
{<br />
$a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();<br />
$a=iconv("UTF-8","GBK//IGNORE",$a);//转码<br />
$b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();<br />
$b=iconv("UTF-8","GBK//IGNORE",$b);//转码<br />
//$c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();<br />
//$d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();<br />
//$e = $objPHPExcel->getActiveSheet()->getCell("E".$j)->getValue();<br />
$sql = "INSERT INTO paee_course VALUES('".$a."','".$b."')";//,".$c.",".$d.",".$e."<br />
echo $sql."$j</br>";<br />
mysql_query($sql);<br />
/*if(!mysql_query($sql))<br />
{<br />
    re_result("导入数据失败,请稍后再试或与管理员联系");<br />
}*/<br />
}

问题:
1、在页面的输出是全部都输出成功了,但是导入数据库的时候只导入了67条,求教
2、昨天晚上页面输出为乱码,导入数据库也为乱码,我转换编码之后页面输出是正常了,但是导入数据库之后还是乱码,但是早上导入的时候发现又不是乱码了,我没改过代码,这是什么原因呢?
谢谢大家了 
------解决方案--------------------
1、乱码问题
PHPExcel 默认以 utf-8 编码读出数据,没有特殊需要不要改动
如果 mysql 被设置成了 gbk 字符集,也不需要在读取后人工转码。只需在连接数据库后执行 set names utf8 即可。mysql 将自动完成转码工作
减少了代码,也就减少了出问题的概率

2、数据丢失问题
要书写健壮的代码,即含有错误处理的代码。至少需要这样
mysql_query($sql) or die(mysql_error());
以便观察到出了什么问题
你在读取数据后,未作任何处理就向数据库插入
那么如果数据中含有特殊字符“'”时,不就要出错了吗?
------解决方案--------------------
这是因为你的表中数据太多了
你的主键是有符号的长整形(int)改成无符号的 Unsigned int 可使容量增加一倍

2147483647 是 2 的31 次方 - 1
也就是有符号长整形所能表示的最大数
而无符号长整形可以表示到 4294967296
当然,主键是不会有负数的

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn