Setelah kamu berhasil membuat koneksi PHP ke database MySQL dengan MySQLi dan PDO, langkah berikutnya dalam pengembangan aplikasi web adalah menampilkan data dari database MySql dengan PHP ke halaman web.
Misalnya, kamu memiliki tabel produk
dan ingin menampilkan daftar produk di halaman website toko online kamu. Nah, di artikel ini kamu akan belajar dua cara berbeda untuk menampilkan data:
-
Menggunakan MySQLi
-
Menggunakan PDO (PHP Data Objects)
Keduanya sama-sama populer dan sering digunakan dalam pengembangan web modern.
Struktur Database
Kita gunakan database toko_online
dengan tabel produk
seperti berikut:
Kolom | Tipe Data | Keterangan |
---|---|---|
id | INT(11) | PRIMARY KEY, AUTO_INCREMENT |
nama_produk | VARCHAR(100) | Nama produk |
harga | INT(11) | Harga produk |
stok | INT(11) | Jumlah stok |
1. Menampilkan Data Menggunakan MySQLi
a. Membuat File Koneksi
Buat file koneksi.php
:
<?php $host = "localhost"; $user = "root"; $pass = ""; $db = "toko_online"; $conn = mysqli_connect($host, $user, $pass, $db); if (!$conn) { die("Koneksi gagal: " . mysqli_connect_error()); } ?>
b. Menampilkan Data dari Database
Buat file baru read_mysqli.php
:
<?php include "koneksi.php"; $query = "SELECT * FROM produk ORDER BY id DESC"; $result = mysqli_query($conn, $query); ?> <!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Menampilkan Data Produk dengan MySQLi</title> <style> body { font-family: Arial, sans-serif; margin: 40px; } table { border-collapse: collapse; width: 80%; margin: auto; } th, td { border: 1px solid #ccc; padding: 10px; text-align: center; } th { background-color: #f2f2f2; } h2 { text-align: center; } </style> </head> <body> <h2>Daftar Produk (Versi MySQLi)</h2> <table> <tr> <th>ID</th> <th>Nama Produk</th> <th>Harga</th> <th>Stok</th> </tr> <?php while($row = mysqli_fetch_assoc($result)) { ?> <tr> <td><?= $row['id']; ?></td> <td><?= htmlspecialchars($row['nama_produk']); ?></td> <td>Rp<?= number_format($row['harga']); ?></td> <td><?= $row['stok']; ?></td> </tr> <?php } ?> </table> </body> </html>
Penjelasan
-
mysqli_query()
digunakan untuk menjalankan perintah SQL. -
mysqli_fetch_assoc()
untuk mengambil hasil dalam bentuk array asosiatif. -
htmlspecialchars()
mencegah serangan XSS saat menampilkan data.
Jika kamu buka di browser (http://localhost/belajarphp/read_mysqli.php
), kamu akan melihat tabel berisi daftar produk dari database.
2. Menampilkan Data Menggunakan PDO
a. Membuat File Koneksi
Buat file koneksi_pdo.php
:
<?php $host = "localhost"; $db = "toko_online"; $user = "root"; $pass = ""; try { $conn = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die("Koneksi gagal: " . $e->getMessage()); } ?>
b. Menampilkan Data dari Database
Buat file baru read_pdo.php
:
<?php include "koneksi_pdo.php"; try { $stmt = $conn->query("SELECT * FROM produk ORDER BY id DESC"); $produk = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { die("Terjadi kesalahan: " . $e->getMessage()); } ?> <!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Menampilkan Data Produk dengan PDO</title> <style> body { font-family: Arial, sans-serif; margin: 40px; } table { border-collapse: collapse; width: 80%; margin: auto; } th, td { border: 1px solid #ccc; padding: 10px; text-align: center; } th { background-color: #f2f2f2; } h2 { text-align: center; } </style> </head> <body> <h2>Daftar Produk (Versi PDO)</h2> <table> <tr> <th>ID</th> <th>Nama Produk</th> <th>Harga</th> <th>Stok</th> </tr> <?php foreach ($produk as $row): ?> <tr> <td><?= $row['id']; ?></td> <td><?= htmlspecialchars($row['nama_produk']); ?></td> <td>Rp<?= number_format($row['harga']); ?></td> <td><?= $row['stok']; ?></td> </tr> <?php endforeach; ?> </table> </body> </html>
Penjelasan
-
$conn->query()
→ menjalankan query SQL langsung. -
$stmt->fetchAll(PDO::FETCH_ASSOC)
→ mengambil semua hasil dalam bentuk array asosiatif. -
foreach
→ digunakan untuk menampilkan semua data hasil query.
3. Perbandingan MySQLi vs PDO
Aspek | MySQLi | PDO |
---|---|---|
Kemudahan | Mudah untuk pemula | Sedikit lebih kompleks |
Dukungan Database | Hanya MySQL | Banyak database (MySQL, PostgreSQL, SQLite, dll) |
Prepared Statement | ✅ | ✅ |
Error Handling | Terbatas | Lebih baik dengan try...catch |
Fleksibilitas | Rendah | Tinggi |
Tips SEO & Best Practice
-
Gunakan struktur file rapi (misalnya folder
includes
untuk koneksi). -
Selalu lindungi output dengan
htmlspecialchars()
agar aman dari XSS. -
Gunakan number_format() untuk tampilan harga agar lebih rapi.
-
Pastikan judul halaman (
<title>
) dan heading (<h2>
) sesuai dengan topik (SEO-friendly). -
Tambahkan meta description di setiap halaman agar hasil pencarian lebih menarik.
Kesimpulan
Kamu kini sudah memahami dua cara menampilkan data dari database ke halaman web:
✅ Dengan MySQLi – lebih sederhana dan cocok untuk pemula.
✅ Dengan PDO – lebih aman dan fleksibel untuk proyek skala besar.
Keduanya bisa digunakan sesuai kebutuhan, tetapi jika kamu ingin membangun aplikasi profesional yang mudah dikembangkan, PDO lebih direkomendasikan.