如何使用 PHP 有效率地將 CSV 資料匯入 MySQL 並排除故障?

Patricia Arquette
發布: 2024-11-19 08:38:02
原創
400 人瀏覽過

How Can I Efficiently Import and Troubleshoot CSV Data into MySQL using PHP?

使用 PHP/MySQL 匯入 CSV 資料:故障排除和最佳化

本文解決了與使用 PHP/MySQL 將 CSV 資料匯入 MySQL相關的故障排除與最佳化問題PHP.

問題與解決方案:

1.文字顯示為0:

1.文字顯示為0:

確保您的CSV 檔案使用fgetcsv 中指定的正確分隔符號。檢查資料庫中「文字」列的資料類型。如果沒有設定為文字類型,匯入的資料可能會被截斷。

2.用引號括起來的資料:

如果 CSV 檔案中的資料用引號括起來,您可以使用 returned_by 參數在 fgetcsv 中指定。這將從導入的資料中去除引號。

3.忽略標題行:

要忽略標題行,請在開始匯入資料之前使用 fgets 函數讀取並丟棄 CSV 檔案的前 X 行。

4.資料格式保留:

MySQL 預設保留資料格式。小數值導入資料庫後將保留為小數。

5.執行時間限制:

如果遇到「超出最大執行時間」錯誤,請嘗試增加 PHP 配置 (php.ini) 中的 max_execution_time 設定。或者,將導入過程分解為較小的批次,以減少伺服器上的負載。

最佳化:

使用LOAD DATA INFILE 功能:

MySQL 提供了LOADATA INFILE 功能,該功能允許您將CSV 檔案直接匯入資料庫,而無需循環或解析。此方法比使用 PHP 迴圈要快得多。

<?php
$query = <<<EOF
    LOAD DATA INFILE '$fileName'
     INTO TABLE tableName
     FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
     LINES TERMINATED BY '\n'
    (field1,field2,field3,etc)
EOF;

$db->query($query);
?>
登入後複製
使用 LOAD DATA INFILE 的範例:

透過使用 LOAD DATA INFILE,您可以簡化 CSV 匯入過程,提高效能,減少資源消耗。

以上是如何使用 PHP 有效率地將 CSV 資料匯入 MySQL 並排除故障?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板