CSV adalah kependekan dari Comma Separated Values, suatu format data dalam basis data di mana setiap record dipisahkan dengan tanda koma (,) atau titik koma (;). Selain sederhana, format ini dapat dibuka dengan berbagai text editor seperti Notepad, Wordpad, Google Doc, bahkan MS Excel.
CSV adalah format untuk pertukaran data yang umum dan banyak didukung oleh berbagai macam aplikasi yang menggunakan data tabular. Penggunaan yang paling umum adalah memindahkan data tabular antar program yang memiliki flatform berbeda. CSV merupakan format data yang tidak memiliki standar. Ide dasarnya adalah memisahkan data dengan tanda koma, tetapi terkadang akan menjadi rumit ketika data di dalamnya juga mengandung koma atau bahkan tertanam line-break.
Keuntungan menggunakan CSV :
- Bisa dibaca manusia dan mudah untuk mengedit secara manual.
- Sederhana untuk diterapkan dan mengurai data.
- Lebih cepat untuk ditangani.
- Lebih kecil dalam ukuran.
- Dalam XML, Anda akan mulai dengan tag awal dan tag akhir untuk setiap kolom dalam setiap baris. Dalam CSV Anda hanya akan menulis tajuk kolom hanya sekali.
Kelemahan menggunakan CSV :
- CSV memungkinkan untuk memindahkan data yang paling dasar saja. konfigurasi yang rumit tidak dapat diimpor dan diekspor dengan cara ini.
- Tidak ada perbedaan antara teks dan nilai numerik.
- Masalah dalam mengimpor CSV ke SQL (tidak ada perbedaan antara NULL dan tanda kutip).
- Miskin dukungan dari karakter khusus.
Import Data Dari CSV ke MySQL Dengan Menggunakan PHP
Sama seperti pada artikel sebelumnya di sini, saya menggunakan database dengan nama db_belajar. Buat table tb_anggota, dengan script di bawah ini :
1 2 3 4 5 6 7 8 |
CREATE TABLE IF NOT EXISTS `tb_anggota` ( `anggota_id` int(5) NOT NULL AUTO_INCREMENT, `nama` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `alamat` varchar(50) NOT NULL, `umur` int(2) NOT NULL, PRIMARY KEY (`anggota_id`) ) ENGINE=INNODB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; |
Kemudian buat script PHP untuk koneksi ke database, db.php :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'db_belajar'); function connect() { $connect = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); if (mysqli_connect_errno($connect)) { die("Failed to connect:" . mysqli_connect_error()); } mysqli_set_charset($connect, "utf8"); return $connect; } ?> |
Buat file untuk mengupload file CSV (import.html) :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<html> <head> <title>Import Data From CSV</title> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> </head> <body> <form enctype="multipart/form-data" method="post" action="save.php"> <input type="file" id="fileupload" name="fileupload" /> <button type="submit" name="submit" value="Submit" class="btn btn-success">Submit</button> </form> </body> </html> |
Buat file php untuk memparsing data dan menyimpan data ke database (save.php) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php require 'db.php'; $connect = connect(); $file = $_FILES['fileupload']['tmp_name']; $handle = fopen($file, "r"); while (($filesop = fgetcsv($handle, 1000, ",")) !== false) { $merek = $filesop[0]; $sql = "INSERT INTO `tb_anggota`(`nama`, `email`, `alamat`, `umur`) VALUES ('" . $filesop[0] . "','" . $filesop[1] . "','" . $filesop[2] . "','" . $filesop[3] . "')"; mysqli_query($connect, $sql); } header("location:import.html"); |
Untuk contoh file CSV yang akan diupload seperti di bawah ini :
Export Data Dari MySQL Ke CSV Dengan Menggunakan PHP
Membuat halaman download file CSV (export.php) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php require 'db.php'; $connect = connect(); $file = 'export-' . date('Y-m-d H-i-s'); header("Content-type: text/csv"); header("Content-Disposition: attachment; filename=$file.csv"); header("Pragma: no-cache"); header("Expires: 0"); $sql = "SELECT * FROM tb_anggota ORDER BY anggota_id DESC"; $data = array(); if ($result = mysqli_query($connect, $sql)) { while ($row = mysqli_fetch_assoc($result)) { $data[] = $row; } } $output = fopen("php://output", "w"); foreach ($data as $val) { fputcsv($output, $val); } fclose($output); |
Ketika Anda membuka halaman export.php, maka hasil export data dari database akan otomatis didownload dalam format CSV.
Cukup mudah bukan, semoga bermanfaat 🙂
Klik di sini untuk tutorial PHP lainnya.