Mengintegrasikan PHP dengan MySQL adalah pondasi utama dalam pengembangan web dinamis. PHP bertindak sebagai bahasa sisi server untuk memproses logika dan permintaan, sementara MySQL bertindak sebagai sistem manajemen basis data relasional untuk menyimpan dan mengambil data. Contoh program sederhana berikut akan menunjukkan cara membuat koneksi, menjalankan kueri dasar (SELECT), dan menampilkan hasilnya di halaman web.
Untuk menjalankan contoh ini, Anda memerlukan server web (seperti Apache), PHP, dan server basis data MySQL yang sudah terinstal dan berjalan (umumnya melalui paket seperti XAMPP atau WAMP).
Asumsikan kita memiliki basis data bernama db_toko dan sebuah tabel bernama produk dengan kolom id, nama_produk, dan harga.
Simpan kode berikut sebagai daftar_produk.php di direktori web server Anda. Pastikan untuk mengganti kredensial database (username, password, nama database) sesuai konfigurasi lokal Anda.
Kita menggunakan ekstensi MySQLi (MySQL Improved) yang lebih modern dibandingkan mysql_connect yang sudah usang.
<?php
$servername = "localhost";
$username = "root"; // Ganti sesuai kebutuhan
$password = ""; // Ganti sesuai kebutuhan
$dbname = "db_toko";
// Membuat koneksi
$conn = new mysqli($servername, $username, $password, $dbname);
// Cek koneksi
if ($conn->connect_error) {
die("Koneksi gagal: " . $conn->connect_error);
}
// echo "Koneksi berhasil"; // Baris ini dapat dihapus setelah yakin
?>
Setelah koneksi berhasil, kita dapat menjalankan kueri SQL untuk mengambil semua data dari tabel produk.
<?php
// ... (Kode Koneksi di atas) ...
$sql = "SELECT id, nama_produk, harga FROM produk";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// Output data dari setiap baris
echo "<h2>Daftar Produk Tersedia</h2>";
echo "<table style='width:100%; border-collapse: collapse;'>";
echo "<tr style='background-color: #ddd;'><th style='padding: 8px; border: 1px solid #999;'>ID</th><th style='padding: 8px; border: 1px solid #999;'>Nama Produk</th><th style='padding: 8px; border: 1px solid #999;'>Harga</th></tr>";
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td style='padding: 8px; border: 1px solid #999;'>" . $row["id"]. "</td>";
echo "<td style='padding: 8px; border: 1px solid #999;'>" . htmlspecialchars($row["nama_produk"]). "</td>";
echo "<td style='padding: 8px; border: 1px solid #999;'>Rp " . number_format($row["harga"], 2, ',', '.'). "</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "<p>0 hasil ditemukan.</p>";
}
$conn->close();
?>
Proses ini melibatkan beberapa langkah penting dalam PHP:
new mysqli(...) mencoba membangun tautan fisik ke server basis data.if ($conn->connect_error) sangat krusial. Jika koneksi gagal (misalnya, salah password atau server mati), script akan berhenti (die()) dan menampilkan pesan error.$sql menahan perintah SQL. $conn->query($sql) mengirimkan perintah ini ke MySQL dan mengembalikan hasilnya ke variabel $result.$result->num_rows > 0 memastikan ada data yang dikembalikan sebelum mencoba membacanya.while($row = $result->fetch_assoc()) mengulang baris demi baris. fetch_assoc() mengembalikan data baris saat ini sebagai array asosiatif (menggunakan nama kolom sebagai kunci).$conn->close(); sangat penting untuk melepaskan sumber daya yang digunakan oleh koneksi database setelah selesai.Penggunaan htmlspecialchars() dan number_format() dalam output adalah praktik baik untuk keamanan (mencegah XSS) dan format tampilan (mata uang).