Fungsi mysqli_fetch_assoc() di PHP: Cara Mengambil Data dari MySQL

| | | PHP
Fungsi mysqli_fetch_assoc() di PHP: Cara Mengambil Data dari MySQL

Saat pertama kali belajar PHP, salah satu hal yang paling sering dipakai adalah menampilkan data dari database MySQL ke halaman web. Fungsinya adalah mysqli_fetch_assoc() — dia yang mengubah hasil query menjadi baris yang bisa kita baca sebagai array.

Tanpa fungsi ini, data di database tidak akan pernah sampai ke layar.

Artikel ini menjelaskan apa itu mysqli_fetch_assoc(), bagaimana cara menggunakannya, dan contoh langsung yang bisa kamu jalankan. Saya menuliskannya dengan pola yang sama seperti yang saya pakai waktu belajar dulu: baca satu baris, tampilkan, ulangi sampai habis.

Pengertian mysqli_fetch_assoc()

mysqli_fetch_assoc() adalah fungsi PHP yang digunakan untuk mengambil satu baris data dari database MySQL sebagai array asosiatif. Fungsi ini mengembalikan array asosiatif yang berisi nama kolom dan nilai dari setiap kolom dalam baris yang dipilih.

Cara Menggunakan mysqli_fetch_assoc():

mysqli_fetch_assoc() harus digunakan setelah melakukan koneksi ke database dan menjalankan query SELECT. Berikut adalah langkah-langkah untuk menggunakan mysqli_fetch_assoc():

  1. Buat koneksi ke database MySQL menggunakan fungsi mysqli_connect().
  2. Jalankan query SELECT menggunakan fungsi mysqli_query().
  3. Looping hasil query menggunakan fungsi mysqli_fetch_assoc().
  4. Gunakan hasil mysqli_fetch_assoc() untuk menampilkan data.

Berikut adalah contoh penggunaan mysqli_fetch_assoc():

<?php
// Buat koneksi ke database MySQL
$conn = mysqli_connect("localhost", "username", "password", "dbname");

// Jalankan query SELECT
$result = mysqli_query($conn, "SELECT * FROM users");

// Looping hasil query
while ($row = mysqli_fetch_assoc($result)) {
echo "Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
}

Dalam contoh di atas, kita membuat koneksi ke database MySQL dan menjalankan query SELECT untuk mengambil data dari tabel users. Kemudian kita menggunakan looping while dan fungsi mysqli_fetch_assoc() untuk menampilkan data.

Beberapa contoh penggunaan mysqli_fetch_assoc():

Mengambil satu baris data dari database MySQL.

<?php
$query = "SELECT * FROM users WHERE id = 1";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);

Mengambil semua data dari database MySQL.

<?php
$query = "SELECT * FROM users";
$result = mysqli_query($conn, $query);

while ($row = mysqli_fetch_assoc($result)) {
  echo $row["name"] . "<br>";
}

Mengambil data dari beberapa tabel dengan JOIN.

<?php
$query = "SELECT users.name, orders.order_date FROM users INNER JOIN orders ON users.id = orders.user_id";
$result = mysqli_query($conn, $query);
while ($row = mysqli_fetch_assoc($result)) {
  echo $row["name"] . " - " . $row["order_date"] . "<br>";
}

FAQ — Pertanyaan Umum

Apa perbedaan antara mysqli_fetch_assoc() dan mysqli_fetch_array()?

mysqli_fetch_assoc() mengembalikan array asosiatif yang berisi nama kolom dan nilai dari setiap kolom dalam baris yang dipilih, sedangkan mysqli_fetch_array() mengembalikan array numerik dan asosiatif yang berisi nama kolom dan nilai dari setiap kolom dalam baris yang dipilih.

Apa yang terjadi jika tidak menggunakan mysqli_fetch_assoc() dalam query SELECT?

Tanpa mysqli_fetch_assoc(), query SELECT hanya mengembalikan objek hasil mysqli_query(). Objek itu sendiri tidak bisa langsung ditampilkan — kamu tetap perlu fetch untuk mengambil barisnya.

Apa yang harus dilakukan jika mysqli_fetch_assoc() mengembalikan nilai NULL?

NULL dari mysqli_fetch_assoc() menandakan tidak ada lagi baris yang tersisa (loop selesai). Setelah itu tinggal menutup koneksi dengan mysqli_close().

Praktik Terbaik

Beberapa tips saat menulis kode PHP:

  1. Gunakan prepared statement — Hindari SQL injection dengan menggunakan PDO atau MySQLi prepared statement, jangan concatenate query secara langsung.
  2. Validasi input — Selalu validasi dan sanitasi data dari user menggunakan filter_var(), htmlspecialchars(), atau library validasi.
  3. Error reporting — Saat development, aktifkan error_reporting(E_ALL) dan display_errors untuk memudahkan debugging.
  4. Gunakan autoloading — Manfaatkan Composer autoload atau PSR-4 untuk mengelola file class secara otomatis.
  5. Pisahkan logic dan view — Gunakan pola MVC atau minimal pisahkan kode PHP dan HTML agar lebih rapi dan mudah dipelihara.

Dua tips pertama (prepared statement dan validasi input) adalah kebiasaan yang paling sering saya tekankan ke teman yang baru mulai, karena keduanya mencegah masalah yang paling umum: SQL injection. Siapapun yang menyusun query dengan menggabungkan string dari input user langsung rentan — dan solusinya sederhana, pakai prepared statement sejak awal.

Kesimpulan:

mysqli_fetch_assoc() adalah fungsi yang paling sering kamu pakai untuk menampilkan data MySQL di halaman PHP. Konsepnya sederhana: dia membaca satu baris, kamu tampilkan, lalu ulangi sampai NULL menandakan semua baris sudah habis.

Mulai dari contoh while-loop di atas, lalu tambahkan prepared statement begitu query mulai menyentuh input dari user. Itu urutan yang saya bilang paling nyaman untuk dipelajari dulu, dan paling jarang bikin masalah di project sungguhan.

Pertanyaan yang Sering Diajukan

Apa perbedaan antara mysqli_fetch_assoc() dan mysqli_fetch_array()?

mysqli_fetch_assoc() mengembalikan array asosiatif yang berisi nama kolom dan nilai dari setiap kolom dalam baris yang dipilih, sedangkan mysqli_fetch_array() mengembalikan array numerik dan asosiatif yang berisi nama kolom dan nilai dari setiap kolom dalam baris yang dipilih.

Apa yang terjadi jika tidak menggunakan mysqli_fetch_assoc() dalam query SELECT?

Jika tidak menggunakan mysqli_fetch_assoc(), query SELECT hanya akan mengembalikan objek hasil mysqli_query(). Objek ini tidak bisa digunakan untuk menampilkan data.

Apa yang harus dilakukan jika mysqli_fetch_assoc() mengembalikan nilai NULL?

Jika mysqli_fetch_assoc() mengembalikan nilai NULL, itu berarti tidak ada lagi baris data yang tersedia untuk diambil. anda harus keluar dari looping while dan menutup koneksi ke database menggunakan fungsi mysqli_close().

Sigit Nurhanafi avatar
Full-stack developer & technical writer. Berpengalaman di PHP, Laravel, NodeJS, MySQL, dan Python. Aktif menulis tutorial pemrograman dan maintaining open-source projects di PemburuKode sejak 2021.