php 中fgetcsv函數將csv文件導入mysql數據庫
來源:程序員人生 發布時間:2014-04-02 15:07:56 閱讀次數:3177次
在處理大批量excel數據到mysql數據庫時,用php自帶的fgetcsv函數先從csv文件中逐行獲取數據,再配合sql語句導入數據庫,如果遇到了亂碼問題,可以使用iconv函數進行轉碼,代碼示例如下:
- <?php
- $row = 1;
- $handle = fopen("test.csv","r");
- while ($data = fgetcsv($handle, 1000, ",")) {
- $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函數對數據內容進行轉碼入庫等后續操作。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈