扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
php读取csv文件,在windows上出现中文读取不到的情况,本人立马想到一个函数mb_convert_encoding();作如下设置 $str = mb_convert_encoding($str, "UTF-8", "GBK");然后就可以了。当然你也可以用iconv();作如下设置iconv(‘GBK’,”UTF-8//TRANSLIT//IGNORE”,$str);这两个函数来解决在windows上面发生乱码的问题。
创新互联专注于桐庐企业网站建设,成都响应式网站建设公司,商城网站建设。桐庐网站建设公司,为桐庐等地区提供建站服务。全流程按需定制网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
1. 把现有表中的 email 字段设为 "唯一" 或者 "主键";2. 用SQL语句导入csv文件:LOAD DATA INFILE 'file_name.csv' IGNORE #注意, 这里的IGNORE是关键, 不导入重复的行
INTO TABLE tbl_name
FIELDS
TERMINATED BY ',' #用逗号分割字段
OPTIONALLY ENCLOSED BY '"' #根据csv文件的字符串是否用引号括起来设置
phpmyadmin 导入 csv 的用户界面如下图:
以下是相关的注意事项及说明:
1、关于 CSV 和 CSV using LOAD DATA
这两种都可以导入CSV格式的文件数据,区别在于:当文件比较大时用 CSV 可能 script 会超时,这时就得使用 LOAD DATA。
2、列名
列名就是你在导出时打钩的“将字段名称放在首行”,实际就是用分隔符分开的字段名集合,就是填写所有字段名,中间用分隔字段的字符隔开。
3、Ignore duplicate rows
这个选项的作用是忽略相同的行,意为相同的行只导入一行数据。4、转义字段的字符是指数据里面可能含有特殊字符串,如分隔字段的字符、包裹字段的字符还有SQL保留字符,这些得先转义否则会出错,按默认的设置是没什么问题的。
你用过phpmyadmin了吗,那上面不是有这个功能吗,你自己去读源代码不就解决了吗
CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。
思路:
读取csv文件,每读取一行数据,就插入数据库
示例
文件夹结构
/
file.csv //csv大文件,这里只模拟三行数据,不考虑运行效率(PS:csv文件格式很简单,文件一般较小,解析很快,运行效率的瓶颈主要在写入数据库操作)
index.php //php文件
file.csv
singi,20
lily,19
daming,23
index.php
/**
* 读取csv文件,每读取一行数据,就插入数据库
*/
//获取数据库实例
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = '';
try {
$db = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e-getMessage();
}
//读取file.csv文件
if (($handle = fopen("file.csv", "r")) !== FALSE) {
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
//写入数据库
$sth = $db-prepare('insert into test set name=:name,age=:age');
$sth-bindParam(':name',$row[0],PDO::PARAM_STR,255);
$sth-bindParam(':age',$row[1],PDO::PARAM_INT);
$sth-execute();
}
fclose($handle);
}
数据表
CREATE TABLE `test` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NULL DEFAULT '' COLLATE 'utf8mb4_bin',
`age` INT(10) NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
运行结束后,数据库中会插入csv中的三行数据
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流