Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menyelesaikan Masalah Import Data CSV dalam PHP/MySQL?

Bagaimanakah Saya Boleh Menyelesaikan Masalah Import Data CSV dalam PHP/MySQL?

Susan Sarandon
Susan Sarandonasal
2024-11-19 20:35:03879semak imbas

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

Menyelesaikan Masalah dengan Import Data CSV menggunakan PHP/MySQL

Soalan ini menangani beberapa cabaran yang dihadapi semasa mengimport data CSV ke dalam pangkalan data MySQL menggunakan PHP.

Kod yang disediakan memuat naik fail CSV dan memaparkan kandungannya dengan berkesan. Walau bagaimanapun, ia menghadapi masalah dengan data teks dipaparkan sebagai 0 dalam pangkalan data dan potensi tanda petikan untuk menyertakan data yang diimport.

1. Medan Teks Dipaparkan sebagai 0

Untuk menyelesaikan isu ini, semak pengekodan fail CSV anda. Pastikan ia UTF-8, yang menyokong kedua-dua data teks dan berangka. Selain itu, sahkan bahawa lajur jadual pangkalan data anda ditakrifkan dengan betul untuk menerima data teks.

2. Data Dipetik

Petikan boleh menyertakan data dalam fail CSV. Jika anda menghadapi masalah ini, anda boleh menggunakan mysql_real_escape_string untuk membersihkan data sebelum memasukkannya ke dalam pangkalan data. Fungsi ini melepaskan aksara khas, termasuk petikan, untuk mengelakkan serangan suntikan SQL.

3. Mengabaikan Garis Pengepala

Untuk melangkau baris X pertama fail CSV anda, yang mungkin mengandungi pengepala, gunakan fseek dan fgetc untuk memajukan fail secara manual sebelum memulakan proses import.

4. Format Data

Format data hendaklah kekal sama sepanjang proses import. Nilai angka, termasuk perpuluhan, akan dikekalkan dalam format asalnya. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa MySQL mempunyai jenis data khusus untuk pelbagai format (cth., perpuluhan, apungan, dll.), jadi adalah penting untuk menentukan lajur pangkalan data anda dengan sewajarnya.

5. Isu Prestasi

"Ralat maut" yang dilaporkan menunjukkan bahawa had masa pelaksanaan PHP (30 saat) telah melebihi. Ini biasanya ditemui apabila mengimport set data yang besar. Untuk menyelesaikan masalah ini, anda boleh meningkatkan tetapan max_execution_time dalam fail konfigurasi PHP anda (php.ini) atau melaksanakan mekanisme import terkumpul untuk memproses data dalam bahagian yang lebih kecil berbanding berbilang permintaan.

Kaedah Alternatif

Seperti yang dicadangkan dalam jawapan, anda boleh mempertimbangkan untuk menggunakan ciri LOAD DATA INFILE MySQL. Ini membolehkan anda mengimport data CSV secara langsung menggunakan pertanyaan SQL tunggal, meningkatkan prestasi dan menghapuskan keperluan untuk gelung pemprosesan PHP.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Masalah Import Data CSV dalam PHP/MySQL?. 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