Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Cekap Mengimport Data CSV ke MySQL Menggunakan PHP dan Mengelakkan Isu Biasa?

Bagaimana untuk Cekap Mengimport Data CSV ke MySQL Menggunakan PHP dan Mengelakkan Isu Biasa?

Patricia Arquette
Patricia Arquetteasal
2024-11-17 12:12:02931semak imbas

How to Efficiently Import CSV Data into MySQL Using PHP and Avoid Common Issues?

Mengimport Data CSV Menggunakan PHP dan MySQL

Masalah dan Soalan

Seorang pengguna menghadapi masalah semasa mengimport data CSV ke dalam pangkalan data MySQL dan mengemukakan perkara berikut soalan:

  1. Nilai teks yang diimport muncul sebagai "0" dalam pangkalan data.
  2. Bagaimana untuk mengendalikan data yang disertakan dalam tanda petikan?
  3. Mengabaikan beberapa baris pertama daripada fail CSV yang mengandungi pengepala.
  4. Memelihara format data (titik perpuluhan) apabila mengimport ke dalam pangkalan data.
  5. Ralat "melebihi masa pelaksanaan" berlaku semasa import data yang besar.

Penyelesaian

1. Nilai Teks Muncul sebagai "0":

Data mungkin sedang diimport sebagai integer dalam pangkalan data dan bukannya rentetan. Pastikan lajur pangkalan data adalah daripada jenis yang betul (cth., TEKS atau VARCHAR).

2. Mengendalikan Data Dipetik:

Gunakan klausa DISERTAKAN OLEH PILIHAN dalam pertanyaan LOAD DATA INFILE untuk menentukan aksara kepungan (cth., ").

3. Mengabaikan Garis Pengepala :

Tambahkan klausa LINES TERMINATED BY dalam pertanyaan dan nyatakan aksara pemisah baris (cth., n Kemudian, abaikan bilangan baris awal yang dikehendaki sebelum mengimport.

4. Memelihara Format Data:

MySQL menyimpan nilai angka dalam format asalnya melainkan dinyatakan sebaliknya.

5 Ralat Melebihi Masa:

Tingkatkan tetapan max_execution_time dalam konfigurasi PHP (cth., dalam php.ini) untuk membolehkan masa pelaksanaan yang lebih lama Untuk import yang besar, pertimbangkan untuk menggunakan kaedah yang lebih cekap seperti LOAD DATA INFILE MySQL terus.

Penyelesaian Alternatif

Daripada menggunakan gelung PHP untuk mengimport data, ciri LOAD DATA INFILE MySQL boleh mengimport terus fail CSV ke dalam jadual dengan satu pertanyaan SQL:

$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);

Kaedah ini lebih pantas dan lebih cekap daripada gelung penghuraian PHP.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mengimport Data CSV ke MySQL Menggunakan PHP dan Mengelakkan Isu Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn