首頁  >  文章  >  後端開發  >  如何解決 PHP/MySQL 中的 CSV 資料導入問題?

如何解決 PHP/MySQL 中的 CSV 資料導入問題?

Susan Sarandon
Susan Sarandon原創
2024-11-19 20:35:03806瀏覽

How Can I Troubleshoot CSV Data Import Problems in PHP/MySQL?

使用 PHP/MySQL 解決 CSV 資料匯入問題

此問題解決了使用 PHP 將 CSV 資料匯入 MySQL 資料庫時遇到的幾個挑戰。

提供的程式碼有效上傳 CSV 檔案並顯示其內容。然而,它面臨著文字資料在資料庫中顯示為 0 以及可能用引號括住導入資料的問題。

1.文字欄位顯示為 0

要解決此問題,請檢查 CSV 檔案的編碼。確保它是 UTF-8,它支援文字和數字資料。此外,請驗證您的資料庫表列是否已正確定義以接受文字資料。

2.引用資料

引號可以將資料包含在 CSV 檔案中。如果遇到此問題,可以在將資料插入資料庫之前使用 mysql_real_escape_string 來清理資料。此函數會對特殊字元(包括引號)進行轉義,以防止 SQL 注入攻擊。

3.忽略標題行

要跳過CSV 檔案的前X 行(其中可能包含標題),請在開始匯入過程之前使用fseek 和fgetc 手動瀏覽文件。

4.資料格式

資料格式在整個導入過程中應保持不變。數值(包括小數)將以其原始格式保留。然而,需要注意的是,MySQL 具有針對各種格式的特定資料類型(例如小數、浮點等),因此相應地定義資料庫列至關重要。

5.效能問題

報出「Fatal error」表示超出了PHP的執行時間限制(30秒)。匯入大型資料集時經常會遇到這種情況。若要解決此問題,您可以增加 PHP 設定檔 (php.ini) 中的 max_execution_time 設定,或實作分割導入機制,以透過多個請求處理較小部分的資料。

替代方法

根據答案中的建議,您可以考慮使用 MySQL 的 LOAD DATA INFILE 功能。這使您可以使用單一 SQL 查詢直接匯入 CSV 數據,從而提高效能並消除 PHP 處理循環的需要。

以上是如何解決 PHP/MySQL 中的 CSV 資料導入問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn