File CSV yang kita miliki adalah data asal, karena hanya dibuat sebagai contoh pengolahan data csv dengan PHP. Berikut ini isi file contoh.csv
Nama1,Kota1,Negara1 Nama2,Kota2,Negara2 Nama3,Kota3,Negara3 Nama4,Kota4,Negara4 Nama5,Kota5,Negara5 Nama6,Kota6,Negara6 Nama7,Kota7,Negara7 Nama8,Kota8,Negara8 Nama9,Kota9,Negara9 Nama10,Kota10,Negara10 Nama11,Kota11,Negara11 Nama12,Kota12,Negara12
file diatas bisa dibaca dengan PHP dan menghasilkan data yang sama, scriptnya bisa dilihat dibawah ini csv1.php
$file = "contoh.csv"; $data=fopen($file,'r'); while($baris=fgets($data)){ echo $row."<br>"; } ?>
Hasil eksekusi script diatas sama dengan file aslinya, jadi tidak perlu ditampilkan disini :). Kita bisa juga memecah file contoh.csv diatas dengan bantuan fungsi PHP fgetcsv
<?php if (($handle = fopen("contoh.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br/>"; } } } ?>
hasil keluaran script diatas
Silahkan dimodifikasi sesuai dengan kebutuhan, cukup bermain-main dengan file diatas. Sekarang kita membuat script import CSV ke MySQL dengan PHP
Untuk menyimpan file diatas kita siapkan database bernama belajar dengan table yang bernama contoh
CREATE TABLE IF NOT EXISTS `contoh` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nama` varchar(20) NOT NULL, `kota` varchar(20) NOT NULL, `negara` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
file script import.php
<?php $username = "root"; $password = "PASSWORD"; $database = "belajar"; mysql_connect("localhost", $username, $password); mysql_select_db($database); $file = "contoh.csv"; $handle = fopen($file,"r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $query ="INSERT INTO contoh VALUES ( NULL, '".addslashes($data[0])."', '".addslashes($data[1])."', '".addslashes($data[2])."' ) "; echo "< pre>"; print_r($query); echo "</ pre>"; $hasil = mysql_query($query); } ?>
Dengan begitu semua data yang ada di file contoh.csv sudah masuk ke database MySQL/MariaDB
.
Download:
data saya sampai 30rbu lebih, makai metode ini selalu terkendala load time limit. ada betode lain tidak?bisalnya hasil baca excel dijadikan array dulu?