将txt文件导进去数据库
sanlanlan 2019-1-5 标签: PHP 浏览:1507 评论:0
//file.txt
1 2010-02-09 09:09:01 9
2 2010-02-09 09:09:02 9
3 2010-02-09 09:09:03 9
4 2010-02-09 09:09:04 9
5 2010-02-09 09:09:05 9
$content = file_get_contents('file.txt');
$data = preg_match_all('/\\S+/',$content,$match);$dataInfo = [];
if($match){
$dataInfo = array_chunk($match[0],7);
}
$maxNum = 1000;
$i = 0;
$values = '';
if($dataInfo) {
foreach ($dataInfo as $val) {
$time = strtotime($val[1].' '.$val[2]);
$values .= ",(null,$val[0],$time,$val[3])";
$values = trim($values, ',');
$i++;
if ($maxNum === $i) {
$sql = 'insert into hr_attend (id,job_num,time,count) values ' . $values;
//执行插入数据库操作
$i = 0;
$values = '';
}
}
}
if($i > 0){
$sql = 'insert into hr_attend (id,job_num,time,count) values '.$values;
//执行插入数据库操作
unset($i);
unset($values);
}
exit;
//two:
http://www.jb51.net/article/79854.htm
//thrid
-
mysql中导入txt文件数据的操作指令学习总结基本的MySQL数据库导入导出操作www.2cto.com1 表tt的格式:CREATE TABLE `tt` (`ind` int NOT NULL auto_increment,`name` char(100) default NULL,PRIMARY KEY (`ind`))2 文件d.txt的内容示例:1,a2,b3,c3 导入命令:mysql> load data infile 'd.txt' into table tt-> fields terminated by','-> lines terminated by'\r\n'注意的地方:1)、文件可以使用绝对路径如'c:/d.txt',否则请将文件放在数据库根目录中2)、因为字段之间用了逗号隔开,所以必须fields terminated by',',否则导入失败3)、因为Winsows中行以“\r\n”隔开,所以必须lines terminated by'\r\n',如果不设置这个参数,也可导入成功,但是会多导入一个“\r”控制字符,可能在可视化MySQL工具中看不出字段异样,但是在MySQL命令行中显示会明显混乱。4)、如果表tt非空,且文件中的ind值在表中有重复,会提示错误,并导入失败。只导入name字段,文件d.txt的内容:abcmysql> load data infile 'd.txt' into table tt-> lines terminated by'\r\n'-> (name);load data 命令还支持更复杂的文本格式、文件编码等,可参考官方文档。5 导出到数据到windows文本文件时,为了方便查看,也需要相同的设置mysql> select * from tt into outfile 'd.txt'-> fields terminated by','-> lines terminated by'\r\n'
//window
一、 建立测试表,准备数据
首先建立一个用于测试的表示学生信息的表,字段有id、姓名、年龄、城市、薪水。Id和姓名不
能为空。
- create table person(
- id int not null auto_increment,
- name varchar(40) not null,
- city varchar(20),
- salary int,
- primary key(id)
- )engine=innodb charset=utf8;
张三 31 北京 3000
李四 25 杭州 4000
王五 45 /N 4500
小明 29 天津 /N
每一项之间用Tab键进行分隔,如果该字段为NULL,则用/N表示。
二、 导入数据
输入命令,进行导入。
load data local infile “c:/data.txt”
into table person(name,age,city,salary);
其中local表示本地。执行后,可以看到NULL数据也被正确地导入。
三、 导出数据
现在将这个表导出为文本文件:c:/data_out.txt。
select name,age,city,salary
into outfile “c:/data_out.txt”
lines terminated by “/r/n”
from person;
其中lines terminated by “/r/n”表示每一行(即每一条记录)用/r/n分隔,/r/n是window系
统的换行符。导出的data_out.txt与data.txt的内容完全一样。
四、 运行环境
Windows vista home basic
MySQL 5.1.34-community
五、 注意
字段之间的分隔和记录(行)之间的分隔默认是/t(即Tab)和/n。但可以改变,如:
FIELDS TERMINATED BY ',' --字段用,进行分隔
LINES TERMINATED BY ';' --记录用; 进行分隔
另外要注意其它操作系统的换行符与windows可能不相同。
本文相关标签: php
发表评论: