專案開發中,很多時候要將外部csv檔案匯入到資料庫中或者將資料匯出為csv檔案,那麼具體該如何實現呢?本文將使用php並結合mysql,實現了csv格式資料的匯入和匯出功能。
我們先準備mysql資料表,假設專案中有一張記錄學生資訊的表student,並有id,name,***,age分別記錄學生的姓名、性別、年齡等資訊。
create
table
`student` (
`id`
int(11) not
null auto_increment,
`name`
varchar(50) not
null,
`***`
varchar(10) not
null,
`age`
smallint(3) not
null
default
'0',
primary
key (`id`)
) engine=myisam default charset=utf8;
我們還需要乙個html互動頁面,放置匯入表單和匯出按鈕。
do.php需要根據get過來的引數,分別處理匯入和匯出過程,php結構如下:
include_once ("connect.php"); //連線資料庫
$action = $_get['action'];
if ($action == 'import') //匯入csv
elseif($action=='export') //匯出csv
if ($action == 'import')
$handle = fopen($filename, 'r');
$result = input_csv($handle); //解析csv
$len_result = count($result);
if($len_result==0)
for($i = 1; $i
< $len_result; $i++) //迴圈獲取各字段值
$data_values = substr($data_values,0,-1); //去掉最後乙個逗號
fclose($handle); //關閉指標
$query = mysql_query("insert into student (name,***,age) values $data_values"); //批量插入資料表中
if($query)
else
}
**注意**
php自帶的fgetcsv函式可以輕鬆處理csv,使用該函式可以從檔案指標中讀入一行並解析csv欄位。下面的函式將csv檔案字段解析並以陣列的形式返回。
function
input_csv
($handle)
$n++;
}
return
$out;
}
此外在匯入到資料庫中時,我們採用的是批量插入而不是一條條插入的,因此在構建sql語句時,要稍作處理,見**。
我們知道csv檔案是由逗號分割符組成的純文字檔案,你可以用excel開啟,效果跟xls表個一樣。
...
}elseif ($action=='export') //匯出csv
$filename = date('ymd').'.csv'; //設定檔名
export_csv($filename,$str); //匯出
}
要將資料匯出到本地即下在,需要修改header資訊,**如下:
function export_csv($filename,$data)
注意匯入和匯出的過程中,因為我們使用的是統一utf-8編碼,遇到中文字元一定要記得轉碼,否則可能會出現中文亂碼的情況。
用php匯入匯出csv檔案
最近在做一些模組的時候,頻繁匯入匯出csv檔案,與excel相比他的處理更簡單,檔案體積更小,資料處理量大,而且很多語言都支援。廢話不多,上 charset utf 8 method post enctype multipart form data 上傳檔案h3 type file name fil...
MySQL匯入匯出CSV檔案
mysql自己提供了匯入匯出資料庫的工具,但有時我們需要僅僅匯入匯出單個表的資料,比如匯入匯出csv檔案,此時可以使用mysql自動的命令來做匯入匯出工作。匯出語法如下 select from table into outfile file 或者select from table into outf...
MySQL匯入匯出CSV檔案
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!mysql自己提供了匯入匯出資料庫的工具,但有時我們需要僅僅匯入匯出單個表的資料,比如匯入匯出csv檔案,此時可以使用mysql自動的命令來做匯入匯出工作。匯出語法如下 select from table into outfile file 或者s...