Anda di halaman 1dari 16

Mengenal Fungsi PHP untuk Pengambilan

Data MySQL: mysql_fetch_*

By : Muhammad Yasir
PENGANTAR
PHP dan MySQL, seolah pasangan sejati yang tak terpisahkan.
Keduanya paling sering disandingkan dalam pembuatan aplikasi
berbasis web (web application development). Tak heran jika
begitu banyak fungsi terkait dengan MySQL yang disediakan
oleh PHP. Setidaknya terdapat 45 fungsi PHP terkait dengan
MySQL mulai dari koneksi, pengambilan data, query data hingga
informasi server MySQL
Dalam tutorial ini akan dikenalkan berbagai fungsi PHP terkait
dengan pengambilan data MySQL. Pengambilan data yang
dimaksud disini tepatnya adalah pengolahan hasil perintah
query SELECT yang dihasilkan dari fungsi mysql_query(). Hasil
perintah query dapat diolah untuk ditampilkan atau diproses
oleh PHP melalui berbagai fungsi yang diawali dengan
mysql_fetch_*. Terkait hal tersebut, PHP memiliki 6 (enam)
fungsi yaitu: mysqli_fetch_array(), mysqli_fetch_assoc(),
mysqli_fetch_field(), mysqli_fetch_lengths(),
mysqli_fetch_object() dan mysqli_fetch_row().
Dalam tutorial ini akan dijelaskan kegunaan dari 4 (empat) fungsi
yaitu mysqli_fetch_array(), mysqli_fetch_assoc(),
mysqli_fetch_object() dan mysqli_fetch_row(). Sementara dua
fungsi lainnya yaitu mysqli_fetch_field() dan
mysqli_fetch_lengths() tidak dijelaskan di tutorial ini karena
keduanya tidak terlalu berkaitan dengan pengambilan data MySQL
Untuk keperluan contoh program dalam tutorial ini, kita
akan menggunakan struktur tabel “mahasiswa” sebagai
berikut:

Dan berikut ini isi dari tabel mahasiswa tersebut:


mysqli_fetch_array() : Array asosiatif vs Array numerik

Fungsi mysqli_fetch_array() merupakan salah satu fungsi yang


banyak digunakan dalam proses pengambilan data MySQL.
Fungsi ini akan menangkap data dari hasil perintah query dan
membentuknya ke dalam array asosiatif dan array numerik. Jadi,
fungsi mysqli_fetch_array() menawarkan kemudahan dan
fleksibilitas dalam mengakses data. Namun demikian,
penggunaan fungsi ini dianggap kurang efektif dari sisi performa
karena terlalu “boros” penyimpanan.
Untuk memberikan gambaran bagaimana penggunaan fungsi
mysqli_fetch_array(), perhatikan contoh berikut ini:
Seperti sudah dinyatakan sebelumnya bahwa fungsi
mysqli_fetch_array() akan menghasilkan struktur data dalam
bentuk array asosiatif maupun array numerik. Pada contoh
diatas, dengan menggunakan fungsi mysqli_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 mysqli_fetch_array() dapat diketahui
dengan menggunakan fungsi print_r() seperti perintah pada
baris ke-21. Hasilnya akan terlihat seperti pada gambar berikut
ini:
mysqli_fetch_assoc() : Array asosiatif saja

Dalam hal pengambilan data MySQL, saat ini saya lebih sering
menggunakan fungsi mysqli_fetch_assoc() dibanding fungsi
lainnya. Fungsi ini menghasilkan array asosiatif yang mana index-
nya sesuai dengan nama kolom yang diseleksi. Mudahnya, tidak
tergantung pada urutan kolom, yang penting index-nya sesuai.
Dari sisi programmer juga menjadi lebih informatif. Untuk
memberikan gambaran bagaimana penggunaan fungsi
mysqli_fetch_assoc(), perhatikan contoh berikut ini:
Tidak seperti mysqli_fetch_array(), fungsi mysqli_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, mysqli_fetch_assoc() hanya menghasilkan array asosiatif seperti
terlihat pada potongan tampilan program 2 di atas berikut ini.
mysqli_fetch_row() : Array numerik saja

Untuk kasus-kasus tertentu, saya terkadang lebih memilih


menggunakan fungsi mysqli_fetch_row() dibanding yang lainnya.
Contohnya pada saat saya ingin mengambil jumlah hasil perintah
query dengan menggunakan fungsi COUNT() di MySQL. Program
berikut ini akan menampilkan jumlah record dengan fungsi
COUNT() dan diambil dengan fungsi mysqli_fetch_row(). Pada
bagian akhir program juga ditampilkan struktur array dengan
perintah mysqli_fetch_row().
mysqli_fetch_object() : Gaya object-oriented
Fungsi mysql_fetch_object() akan menyajikan hasil perintah query
dalam gaya penulisan object oriented. Sama seperti
mysql_fetch_assoc(), fungsi ini menjadikan nama kolom hasil
perintah query menjadi property dari obyek. Contoh
penggunaannya tampak pada program 4 di bawah ini. Penggunaan
fungsi ini sebaiknya dihindari untuk keperluan mendatang karena
fungsi ini akan deprecated pada versi PHP 5.5.0 dan akan
dihilangkan pada versi selanjutnya.
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:

• mysqli_fetch_array() : 18.302305936813 detik


• mysqli_fetch_assoc() : 16.9645819664 detik
• mysqli_fetch_row() : 16.664786100388 detik
• mysqli_fetch_object() : 35.827367067337 detik

Anda mungkin juga menyukai