Hi sobat….
Pada kesempatan kali ini kita akan membahas mengenai cara impor file csv dengan phpMyAdmin. Terdapat beberapa langkah yang perlu kita lakukan agar proses impor dapat berjalan dengan baik.
1. Buka halaman impor pada phpMyAdmin
Buka phpMyAdmin, pilih database dan tabel yang ingin kita isi datanya, setelah itu klik import pada menu bagian atas, seperti tampak pada gambar berikut:
Pada halaman tersebut, pastikan beberapa hal berikut ini terpenuhi:
- Perhatikan ukuran maksimal file yang dapat kita upload, pada contoh gambar diatas adalah 64Mb, jika file yang akan kita upload melebihi ukuran tersebut, maka perlu kita ubah setting pada file php.ini yang berada pada folder php, cari bagian
post_max_size =
danupload_max_filesize =
, ubah angkanya melebihi file yang kita upload, misal: 128M atau 256M, kemudian restart server (apache) dan lihat kembali pada halaman import apakah angkanya sudah berubah, jika sudah kita dapat lanjut ke tahap berikutnya. - Pastikan terdapat pilihan CSV dan CSV using LOAD DATA pada bagian Format, seperti tampak pada gambar berikut:
jika tidak ada pilihan CSV using LOAD DATA kemungkinan kita belum memilih tabel.
2. Pilih Format yang diinginkan: CSV atau CSV Using LOAD DATA
Selanjutnya pilih format yang diinginkan apakah menggunakan CSV atau CSV using LOAD DATA. Perlu diperhatikan bahwa kedua pilihan tersebut memiliki perbedaan yang signifikan, diantaranya:
CSV
Pada format csv, file akan diupload ke server dan diparse baris demi baris oleh phpMyAdmin untuk disusun sedemikian rupa sehingga dapat dimasukkan kedalam database dengan statement INSERT, karena menggukan statement insert, maka lamanya proses akan sangat tergantung pada banyaknya data, bisa jadi sangat lama. Cara ini memiliki beberapa kelemahan, sehingga jarang digunakan (saya pribadi), diantaranya:
- Cukup strict misal terkadang muncul error: Invalid column count in CSV input on line 7502. Error ini terjadi jika jumlah kolom pada file csv tidak sama dengan jumlah field pada tabel, atau kita salah menentukan field separatornya, misal: yang seharusnya koma (,) kita tulis titik koma (;). Pada contoh error tersebut, data csv line 1 s.d 7501 sudah disimpan ke database, sehingga untuk mengulanginya, tabel harus kita kosongkan terlebih dahulu.
- Untuk file yang berukuran besar kadang muncul pesan error: Fatal error: Maximum execution time of 300 seconds exceeded in E:xampp-1.8.3.2htdocsphpMyAdmin4.5librariesimport.lib.php on line 913 yang disebabkan waktu eksekusi script PHP terlalu lama, dan bagian Partial Import tidak kita centang.
- Muncul error “Script timeout passed, if you want to finish import, please resubmit the same file and import will resume.” error tersebut muncul karena:
- jumlah yang diimport sangat banyak sehingga sehingga melebihi batas waktu exkekusi script (300s)
- dan bagian Partial Import tidak kita centang
jika kita klik link resubmit the same file, phpMyAdmin akan meneruskan meload baris berikutnya, contoh kita meload file csv sebanyak 533.008 baris, dengan kolom sebanyak 23, script berhenti di baris 240.795, setelah dilanjutkan, berhenti sampai 496.396 baru setelah proses ketiga, data dapat diload semuanya.
CSV using LOAD DATA
Cara kedua ini lebih cepat dan simpel karena murni menggunakan query MySQL Load Data. Pada cara ini phpMyAdmin hanya memfasilitasi saja, yaitu dengan mengupload file .csv kemudian menjalankan query LOAD DATA, sehingga parsing file csv dan insert ke database dikerjakan oleh MySQL, alhasil waktu yang diperlukan lebih cepat, contoh file csv sebanyak 533.008 baris, cukup diload sekali saja.
Karena LOAD LOCAL ini murni query MySQL, kiata dapat menjalankannya dimana saja, seperti script php yang kita buat sendiri atau lewat command line.
3. Isikan parameter yang ada
Selanjutnya isikan parameter yang ada, yaitu:
- Columns separated with: isikan tanda pemisah kolom, biasanya koma atau titik koma, atau biarkan apa adanya, jika data tidak terload ganti dengan koma atau titik koma.
- Columns enclosed with: isikan tanda penutup kolom (jika ada) biasanya satu tanda kutip atau dua tanda kutip, atau biarkan apa adanya.
- Columns escaped with: isikan jika ada tanda escape, atau biarkan apa adanya.
- Lines terminated with: isikan tanda pemisah baris, tanda ini dapat berupa r, n atau rn atau biarkan apa adanya (auto), phpMyAdmin akan otomatis menentukannya untuk kita. Untuk lebih memahami tanda ini dapat membaca artikel: Membuat Baris Baru Lintas Platform Dengan PHP
- Column names: isikan jika urutan data pada file csv tidak sama dengan urutan pada field tabel. Isian nama field harus dipisahkan dengan koma tanpa tanda kutip, misal: id_produk, nama_produk, id_user, kategori
untuk memastikan parameter terisi dengan benar, jika memungkinkan terlebih dahulu buka file csv yang ingin kita impor dengan text editor seperti notepad atau notepad++ dan perhatikan tanda yang ada, seperti contoh pada gambar berikut:
Keterangan gambar diatas: nomor 1: Columns separated with, nomor 2: Columns enclosed with, nomor 3: Columns escaped with
4. Jalankan Import
Setelah parameter diatas terpenuhi, klik GO untuk memulai melakukan import, tunggu beberapa saat hingga proses selesai, jika menggunakan Format: CSV, maka phpMyAdmin akan menginformasikan jumlah baris yang berhasil di load dengan pesan:
Import has been successfully finished, 66626 queries executed. (produk.csv)
sedangkan jika kita menggunakan Format: CSV using LOAD DATA maka phpMyAdmin akan menampilkan pesan sebagai berikut:
Import has been successfully finished, 1 queries executed. (produk.csv)
LOAD DATA INFILE 'E:\xampp\tmp\php3555.tmp' INTO TABLE `produk` FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\' LINES TERMINATED BY 'rn'# 66626 rows affected.
dari query diatas dapat diketahui bahwa data berhasil dimasukkan sebanyak 66626, untuk memastikan data yang masuk sudah sesuai dengan yang diinginkan, tamplikan data tersebut dengan meng klik browse pada menu yang ada di sebelah atas.
Demikian tutorial cara mengimpor file csv dengan phpMyAdmin, semoga dapat bermanfaat.
Subscibe Now
Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com
18 Feedback dari pembaca
Bermanfaat, syukron mas
Sama-sama mas
saya kok gagal import terus ya, keluar tulisan Invalid column count in CSV input on line 1 padahal sudah saya ganti ganti koma dan titik koma tapi tidak pengaruh, apa ada cara lain?
Pakai opsinya CSV using LOAD DATA mas?
Coba dicek lagi opsinya sama file csvnya, error tersebut biasanya terjadi karena separator untuk kolom nya tidak pas
saya sudh berhasil import pak, tetapi yang bermasil masuk hanya idnya saja yang tampil dan yang lainnya kosong.. untuk menanggulangi hal tersebut bagaimana caranya yah pak
terimakasih
Coba dicek lagi mas, karakter untuk field separator sama line separatornya
saya import dengan CSV using LOAD DATA tapi yg masuk cuman kolom pertama doang yg kolom selanjutnya datanya gk masuk kenapa ya?
Itu biasanya ngisi line separatornya belum mas, pakai LOAD DATA INFILE ngga mas?
kenapa saat saya mengimportkan data yang masuk cuma 35 baris ya padahgal total baris ad 145
Itu mungkin line separator nya beda mas, bisa dicoba \n atau \r\n
saya sdh coba import menggunakan using load data, Columns separated with = (,) , Columns enclosed with = (“) , Columns escaped with = (\) , dan Lines terminated with = auto. CSV yg saya import ada 68 ribu data. 68 ribu berhasil ter-import, tetapi setelah data ke 64 ribu, data menjadi NULL semua. ini bagaimana ya?
MySQL memberikan hasil kosong (atau nol baris). (Pencarian dilakukan dalam 39.1405 detik.)
LOAD DATA INFILE ‘C:\\xampp\\tmp\\phpE0B1.tmp’ INTO TABLE `data_nilai` FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘\”‘ ESCAPED BY ‘\\’ LINES TERMINATED BY ‘\r\n’
Coba cek file csv nya mbak apakah setelah data ke 64 ribu datanya ada?
Kolomnya harus sama ya data dalam .csvnya dengan yg ada di phpMyAdmin? Soalnya saya buatnya dengan migration pada laravel.
Iya, maksudnya jumlah kolomnya harus sama, kalau ngga ya terpotong datanya…
Bagaimana cara untuk mengimpor hanya 1 / beberapa kolom saja dari data csv, tidak seluruh kolom?
Esensi menggunakan file CSV adalah untuk upload semuanya mas, tidak bisa per kolom
sangat bermanfaat sekali, mohon pencerahan gan, saya import scv ke phpmyadmin berisi kolom data password, tapi setelah berhasil knp ya password terbaca salah diaplikasi saat dicoba salahsatunya untuk login
Dipastikan dulu mas, nilai yang diimpor sudah benar dan pastikan hashing passwprdnya sudah sesuai