Mengintegrasikan PHP dengan MySQL adalah fondasi utama dalam pengembangan aplikasi web dinamis. MySQL berfungsi sebagai basis data tempat data disimpan, sementara PHP digunakan untuk memproses permintaan, berinteraksi dengan basis data tersebut, dan menghasilkan konten HTML yang dilihat pengguna. Artikel ini akan menyajikan contoh sederhana namun fungsional mengenai bagaimana kedua teknologi ini bekerja bersama.
Struktur Dasar Integrasi
Untuk menjalankan contoh ini, kita memerlukan tiga komponen utama: sebuah basis data di MySQL, tabel di dalamnya, dan skrip PHP untuk melakukan koneksi serta operasi CRUD (Create, Read, Update, Delete).
Ilustrasi: Alur Interaksi PHP dan MySQL
Langkah 1: Persiapan Basis Data MySQL
Asumsikan kita membuat basis data bernama aplikasi_db dan sebuah tabel bernama pengguna.
SQL untuk Pembuatan Tabel:
CREATE TABLE pengguna (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
tanggal_daftar TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Struktur ini akan digunakan untuk menyimpan data pengguna sederhana.
Langkah 2: Koneksi PHP ke MySQL
Kita akan menggunakan ekstensi MySQLi (MySQL Improved) dalam mode prosedural untuk kesederhanaan dalam contoh ini. Koneksi yang stabil adalah kunci utama.
File: koneksi.php
<?php
$servername = "localhost";
$username = "root"; // Ganti dengan username database Anda
$password = ""; // Ganti dengan password database Anda
$dbname = "aplikasi_db";
// Membuat koneksi
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Cek koneksi
if (!$conn) {
die("Koneksi gagal: " . mysqli_connect_error());
}
// echo "Koneksi berhasil"; // Hapus ini di lingkungan produksi
?>
File ini harus disertakan (include atau require) di setiap skrip PHP yang perlu berinteraksi dengan basis data.
Langkah 3: Contoh Program PHP (Menampilkan Data)
Berikut adalah contoh program PHP yang terhubung ke koneksi.php dan mengambil semua data dari tabel pengguna (Operasi READ).
File: tampil_data.php
<?php
require 'koneksi.php'; // Memuat koneksi
$sql = "SELECT id, nama, email FROM pengguna ORDER BY id DESC";
$result = mysqli_query($conn, $sql);
?>
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Data Pengguna</title>
</head>
<body>
<h1>Daftar Pengguna Terdaftar</h1>
<table border="1" width="100%">
<tr>
<th>ID</th>
<th>Nama</th>
<th>Email</th>
</tr>
<?php
if (mysqli_num_rows($result) > 0) {
// Output data dari setiap baris
while($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>" . $row["id"]. "</td>";
echo "<td>" . htmlspecialchars($row["nama"]). "</td>";
echo "<td>" . htmlspecialchars($row["email"]). "</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='3'>Belum ada data pengguna.</td></tr>";
}
mysqli_close($conn);
?>
</table>
</body>
</html>
Dalam contoh di atas, mysqli_query mengirim perintah SQL ke server MySQL, dan mysqli_fetch_assoc digunakan untuk mengambil data baris demi baris dalam format array asosiatif.
Keamanan dalam Interaksi PHP dan MySQL
Pengembangan web modern sangat menekankan keamanan, terutama ketika berurusan dengan input pengguna. Salah satu ancaman terbesar adalah SQL Injection. Untuk mitigasi, kita harus selalu menggunakan Prepared Statements daripada menyisipkan variabel langsung ke string SQL.
Contoh Penggunaan Prepared Statements (Penyisipan Data - CREATE):
<?php
require 'koneksi.php';
$nama_baru = "Budi Santoso"; // Data dari POST atau input lain
$email_baru = "[email protected]";
// 1. Siapkan statement
$stmt = mysqli_prepare($conn, "INSERT INTO pengguna (nama, email) VALUES (?, ?)");
// 2. Ikat parameter (s = string, i = integer, d = double, b = blob)
mysqli_stmt_bind_param($stmt, "ss", $nama_baru, $email_baru);
// 3. Eksekusi
if (mysqli_stmt_execute($stmt)) {
echo "Data berhasil ditambahkan.";
} else {
echo "Error: " . mysqli_error($conn);
}
mysqli_stmt_close($stmt);
mysqli_close($conn);
?>
Dengan menggunakan tanda tanya (?) sebagai placeholder dan fungsi mysqli_stmt_bind_param, PHP memastikan bahwa input pengguna selalu diperlakukan sebagai data, bukan sebagai bagian dari perintah SQL, sehingga mencegah serangan SQL Injection.
Kesimpulan
Integrasi PHP dan MySQL adalah proses yang melibatkan pembuatan koneksi yang aman, eksekusi perintah SQL (baik melalui sintaks langsung atau prepared statements), dan pemrosesan hasilnya di sisi PHP sebelum ditampilkan kepada pengguna. Menguasai konsep dasar ini adalah langkah awal yang krusial dalam membangun aplikasi web yang kompleks dan aman.