本文章來給各位同學詳細介紹fgetcsv函數將csv文件導入mysql數據庫具體函數,同時在中文亂碼的解決辦法,各位朋友可參考。
在處理大批量excel數據到mysql數據庫時,用php自帶的fgetcsv函數先從csv文件中逐行獲取數據,再配合sql語句導入數據庫,如果遇到了亂碼問題,可以使用iconv函數進行轉碼。
代碼示例:
<?php
$row = 1;
$handle = fopen("test.csv","r");
while ($data = fgetcsv($handle, 1000, ",")) {//1000為csv文件總行數,逗號是數據分隔符,這兩個參數均可以忽略不寫
$num = count($data);
echo "<p> 第 $row行有$num個字段。 <br>n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br>n";
}
}
fclose($handle);
?>
導入mysql時中文亂碼
用網上通用的方法讀取並上傳csv文件內容進入mysql數據庫中時,中文顯示亂碼,即使對數據用iconv函數轉碼後仍然亂碼,這時可以用setlocale()函數:
這個函數經查閱是配置地域信息用的,在讀取和寫入csv數據前先用此函數進行定義,比如我的csv文件是無BOM的UTF-8格式,就先用如下函數進行定義:
代碼如下 復制代碼setlocale(LC_ALL, 'zh_CN.UTF8′);
然後再用iconv函數對數據內容進行轉碼入庫等後續操作。