Seorang pengguna menghadapi masalah semasa mengimport data CSV ke dalam pangkalan data MySQL dan mengemukakan perkara berikut soalan:
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.
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!