CSV導入數據庫總結:
粗略看過之後發現,基本所有的字段都比較短,為了快速建表,我們可以簡單的使用varchar(20)來定義每個字段的類型(!注意,實際開發中,一定要根據自己的數據類型選擇合適的字段類型,這裡我們偷懶,犧牲的當然是性能和存儲空間)。
右鍵點擊第一行復制,復制所有字段Header(以空白分割)。
腳本生成數據庫創建代碼:
<?php $columns_line = "Name CardNo Descriot CtfTp CtfId Gender Birthday Address Zip Dirty District1 District2 District3 District4 District5 District6 FirstNm LastNm Duty Mobile Tel Fax EMail Nation Taste Education Comp any CTel CAddress CZip Family Version id"; $columns = preg_split("/\s+/",trim($columns_line)); $chars = "create table kf_info("; foreach( $columns as $col ){ $chars .= "$col varchar(20) not null default '' "; if($col != end($columns)){ $chars .= ","; } $chars .= PHP_EOL; } $chars .= ") engine=myisam default charset=utf8;"; echo $chars;
生成的create table SQL語句:
create table kf_info(Name varchar(20) not null default '' , CardNo varchar(20) not null default '' , Descriot varchar(20) not null default '' , CtfTp varchar(20) not null default '' , CtfId varchar(20) not null default '' , Gender varchar(20) not null default '' , Birthday varchar(20) not null default '' , Address varchar(20) not null default '' , Zip varchar(20) not null default '' , Dirty varchar(20) not null default '' , District1 varchar(20) not null default '' , District2 varchar(20) not null default '' , District3 varchar(20) not null default '' , District4 varchar(20) not null default '' , District5 varchar(20) not null default '' , District6 varchar(20) not null default '' , FirstNm varchar(20) not null default '' , LastNm varchar(20) not null default '' , Duty varchar(20) not null default '' , Mobile varchar(20) not null default '' , Tel varchar(20) not null default '' , Fax varchar(20) not null default '' , EMail varchar(20) not null default '' , Nation varchar(20) not null default '' , Taste varchar(20) not null default '' , Education varchar(20) not null default '' , Company varchar(20) not null default '' , CTel varchar(20) not null default '' , CAddress varchar(20) not null default '' , CZip varchar(20) not null default '' , Family varchar(20) not null default '' , Version varchar(20) not null default '' , id varchar(20) not null default '' ) engine=myisam default charset=utf8;
你也可以直接在你的php腳本中直接執行mysql_query.
數據庫總算是建好了:
現在,可以導入csv文件了。mysql提供了load data infile可以輕松導入:
load data infile 'D:/2000W/200W-400W.csv' into table kf_info fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
不幸的是,報錯了:
仔細看紅色標注部分可知,這是UTF-8的BOM頭。
去掉BOM都之後再次嘗試,總算是成功了。
查找記錄:
select Name,CtfId,Birthday,Address,Mobile from kf_info where address like "北京市%" and gender='F';
艾瑪,什麼信息都有,電話號碼,住址,身份證號..網絡真是一個可怕的東西。
現在,你還相信網絡安全麼?
ps: 本文純技術討論,你可以把它理解為:如何將CSV文件導入數據庫。