php 中fgetcsv函数将csv文件导入mysql数据库
在处理大批量excel数据到mysql数据库时,用php自带的fgetcsv函数先从csv文件中逐行获取数据,再配合sql语句导入数据库,如果遇到了乱码问题,可以使用iconv函数进行转码,代码示例如下:
- <?php
- $row = 1;
- $handle = fopen("test.csv","r");
- while ($data = fgetcsv($handle, 1000, ",")) {//1000为csv文件总行数,逗号是数据分隔符,这两个参数均可以忽略不写
- $num = count($data);
- echo "<p> 第 $row行有$num个字段。 <br>n";
- $row++;
- for ($c=0; $c < $num; $c++) {
- echo $data[$c] . "<br>n";
- }
- }
- fclose($handle);
- ?>
导入mysql时中文乱码
用网上通用的方法读取并上传csv文件内容进入mysql数据库中时,中文显示乱码,即使对数据用iconv函数转码后仍然乱码,这时可以用setlocale()函数,这个函数经查阅是配置地域信息用的,在读取和写入csv数据前先用此函数进行定义,比如我的csv文件是无BOM的UTF-8格式,就先用如下函数进行定义:
setlocale(LC_ALL, 'zh_CN.UTF8′);然后再用iconv函数对数据内容进行转码入库等后续操作。