Mengenal Fungsi PHP Untuk Pengambilan Data MySQL Mysql Fetch
Mengenal Fungsi PHP Untuk Pengambilan Data MySQL Mysql Fetch
Net
bagaimana
penggunaan
fungsi
mysql_fetch_array(),
Halaman 2 dari 7
Seperti sudah dinyatakan sebelumnya bahwa fungsi mysql_fetch_array() akan menghasilkan struktur data dalam bentuk array asosiatif maupun array numerik. Pada contoh diatas, dengan menggunakan fungsi mysql_fetch_array(), dapat ditampilkan nilai dari masingmasing baris hasil perintah query SELECT. Cara menampilkan data dapat menggunakan gaya array asosiatif seperti terlihat pada baris ke-8 dimana nama field akan menjadi index array, dan juga dapat menggunakan gaya array numerik seperti terlihat pada baris ke-14 dimana indexnya berupa nilai numerik sesuai urutan field hasil perintah query SELECT. Urutan numerik tersebut diawali dari 0. Struktur array yang dihasilkan oleh fungsi mysql_fetch_array() dapat diketahui dengan menggunakan fungsi print_r() seperti perintah pada baris ke-21. Hasilnya akan terlihat seperti pada gambar berikut ini:
Halaman 3 dari 7
10 11 12 13 14 15 16 17 18
$sql = mysql_query ("SELECT nim, nama FROM mahasiswa"); echo "<h3>Struktur array (mysql_fetch_assoc)</h3>"; while ($baris = mysql_fetch_assoc($sql)) { echo "<pre>"; print_r($baris); echo "</pre>"; } ?>
Tidak seperti mysql_fetch_array(), fungsi mysql_fetch_assoc() hanya menghasilkan array asosiatif dimana index-nya merepresentasikan nama kolom yang diseleksi. Pada program di atas terlihat bahwa pada baris ke-8, untuk setiap baris hasil perintah query akan ditampilkan nilainya. Sementara itu, jika dilihat dari strukturnya, mysql_fetch_assoc() hanya menghasilkan array asosiatif seperti terlihat pada potongan tampilan program 2 di atas berikut ini.
Halaman 4 dari 7
Contoh Program 3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <?php mysql_connect("localhost", "root", "qwerty"); mysql_select_db("demo"); $sql = mysql_query ("SELECT COUNT(*) FROM mahasiswa"); $baris = mysql_fetch_row($sql); echo "Jumlah data: ". $baris[0]. "<br/>"; $sql = mysql_query ("SELECT nim, nama FROM mahasiswa"); echo "<h3>Struktur array (mysql_fetch_row)</h3>"; while ($baris = mysql_fetch_row($sql)) { echo "<pre>"; print_r($baris); echo "</pre>"; } ?>
Perbandingan Kecepatan
Untuk menguji kecepatan dari keempat fungsi di atas, saya mencoba melakukan pengujian dengan menerapkan keempat fungsi untuk mengambil data yang berjumlah 1.135.392 record. Hasilnya sebagai berikut:
Halaman 5 dari 7
mysql_fetch_array() : 18.302305936813 detik mysql_fetch_assoc() : 16.9645819664 detik mysql_fetch_row() : 16.664786100388 detik mysql_fetch_object() : 35.827367067337 detik
Jadi, mana yang sebaiknya digunakan dalam pengambilan data dari database MySQL? Dari pengujian sederhana di atas, yang jelas kita sebaiknya menghindari penggunaan fungsi mysql_fetch_object() karena disamping paling buruk dari sisi kecepatan, juga karena fungsi tersebut akan segera dihilangkan dari fungsi bawaan PHP. Selanjutnya, untuk ketiga fungsi lainnya masih layak untuk digunakan karena secara kecepatan hampir seimbang. Pilihannya tinggal menyesuaikan kebutuhan programmer. Sebagai masukan, berkaitan dengan komunikasi antara PHP dengan database MySQL, kita sebaiknya mulai beralih dari penggunaan fungsi mysql_* menjadi fungsi mysqli_* atau gunakan abstraction layer database. Sebagai informasi awal, MySQLi (mysql improved) merupakan library mysql yang telah ditingkatkan kemampuan, kecepatan dan performanya. Semoga di tutorial mendatang, kita dapat membahas mengenai library MySQLi tersebut. Semoga tutorial ini bermanfaat untuk kita semua dan berbagilah hal baik ke sebanyakbanyaknya orang maka kebahagiaan akan menghampiri Anda. Satu Karya untuk Indonesia!
Referensi Terkait
Buku Gratis Pemrograman Web dengan PHP & MySQL. http://achmatim.net/bukugratis/pemrograman-web-dengan-php-dan-mysql/ PHP MySQL Functions. http://id1.php.net/manual/en/ref.mysql.php
Halaman 6 dari 7
Tentang Penulis
Achmad Solichin. Adalah Lulusan Teknik Informatika, Fakultas Teknologi Informasi, Universitas Budi Luhur, Jakarta (S1, 2005) dan Magister Teknologi Informasi, Universitas Indonesia (S2, 2010). Saat ini sedang menempuh program Doktoral dalam bidang Ilmu Komputer di Universitas Gadjah Mada, Jogjakarta. Kegiatan sehari-hari adalah sebagai Dosen di Universitas Budi Luhur (http://www.budiluhur.ac.id). Kegiatan lain aktif sebagai programmer, web developer, system analyst, konsultan dan memberikan pelatihan di berbagai bidang komputer serta membuat tutorial-tutorial praktis di bidang komputer. Penulis memiliki situs utama di http://achmatim.net yang berisi berbagai tutorial praktis di bidang komputer serta menyediakan buku gratis komputer. Penulis dapat dihubungi melalui email di achmad.solichin@budiluhur.ac.id dan achmatim@gmail.com, YM achmatim, Facebook achmatim dan Twitter @achmatim.
Lisensi Dokumen
Seluruh isi dalam dokumen ini dapat digunakan, dimodifikasi dan disebarluaskan secara bebas untuk tujuan pendidikan, pembelajaran dan bukan komersial (non profit), dengan syarat tidak menghilangkan, menghapus atau mengubah atribut penulis dokumen ini dan pernyataan dalam lisensi dokumen yang disertakan di setiap dokumen. Tidak diperbolehkan mengkomersialkan tutorial ini kecuali mendapatkan ijin terlebih dahulu dari penulis.
Halaman 7 dari 7