ehm*_*mad 8 php mysql csv import
我想将csv文件导入mysql ..类似于:
load data local infile 'uniq.csv' into table tblUniq
fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(uniqName, uniqCity, uniqComments)
Run Code Online (Sandbox Code Playgroud)
http://www.tech-recipes.com/rx/2345/import_csv_file_directly_into_mysql/
但csv中的列名和数据库表中的列名不同,我该怎么办?我想以编程方式进行..
Pek*_*ica 11
但csv中的列名和数据库表中的列名不同,我该怎么办?
不是问题.您可以指定将哪个CSV列导入到哪个数据库列中.
默认情况下,如果在LOAD DATA INFILE语句末尾没有提供列列表,则输入行应包含每个表列的字段.如果只想加载某些表的列,请指定列列表:
Run Code Online (Sandbox Code Playgroud)LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata (col1,col2,...);
当我发现INFILE语法太复杂时我喜欢做的是使用像HeidiSQL这样的图形客户端一起点击正确的列顺序(它有一个图形预览)并复制+粘贴生成的SQL查询.
您可以创建一个脚本来解析 csv 文件并将数据放入数据库中。
就像是:
$path = "yourfile.csv";
$row = 1;
if (($handle = fopen($path, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$row++;
$data_entries[] = $data ;
}
fclose($handle);
}
// this you'll have to expand
foreach($data_entries as $line){
$sql = "INSERT INTO ..."
$db->execute($line);
}
Run Code Online (Sandbox Code Playgroud)