Sebelum sebuah aplikasi PHP bisa menyimpan atau menampilkan data, ia harus terhubung dulu ke database. Ibarat menelepon, PHP perlu “menghubungi” MySQL dan memastikan sambungannya tersambung. Menghubungkan PHP ke database MySQL adalah langkah paling fundamental — dan ada beberapa cara melakukannya. Artikel ini membahas ketiganya secara lengkap: mysqli prosedural, mysqli objek, dan PDO.
Tiga Cara Menghubungkan PHP ke MySQL
| Metode | Gaya | Dukungan Database |
|---|---|---|
| mysqli prosedural | Fungsi | MySQL saja |
| mysqli objek (OOP) | Objek | MySQL saja |
| PDO | Objek | 12+ database (MySQL, PostgreSQL, dll) |
Persiapan: pastikan MySQL berjalan (via XAMPP/Laragon) dan Anda sudah membuat sebuah database, misalnya latihan.

Cara 1: mysqli Prosedural
Gaya paling sederhana, cocok untuk pemula:
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "latihan";
$koneksi = mysqli_connect($host, $user, $pass, $db);
if (!$koneksi) {
die("Koneksi gagal: " . mysqli_connect_error());
}
echo "Berhasil terhubung ke database!";
?>
Cara 2: mysqli Objek (OOP)
Gaya berorientasi objek, lebih rapi dan banyak dipakai di tutorial modern:
<?php
$koneksi = new mysqli("localhost", "root", "", "latihan");
if ($koneksi->connect_error) {
die("Koneksi gagal: " . $koneksi->connect_error);
}
$koneksi->set_charset("utf8mb4"); // penting untuk dukungan karakter lengkap
echo "Berhasil terhubung!";
?>
Jangan lupa set_charset("utf8mb4") agar huruf beraksen dan emoji tersimpan dengan benar.
Cara 3: PDO (Paling Direkomendasikan)
PDO lebih fleksibel karena mendukung banyak jenis database, dan penanganan error-nya lebih baik:
<?php
$host = "localhost";
$db = "latihan";
$user = "root";
$pass = "";
try {
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass);
// aktifkan mode error agar masalah mudah terlihat
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Berhasil terhubung dengan PDO!";
} catch (PDOException $e) {
die("Koneksi gagal: " . $e->getMessage());
}
?>
Praktik Terbaik: Pisahkan File Koneksi
Jangan menulis kode koneksi berulang di setiap file. Simpan di satu file koneksi.php, lalu panggil dengan require:
<?php
// file: index.php
require "koneksi.php";
$data = $koneksi->query("SELECT * FROM mahasiswa");
// ...
?>
Dengan begitu, bila password database berubah, Anda cukup mengeditnya di satu tempat.
Contoh Kasus: Menampilkan Data Setelah Terhubung
<?php
require "koneksi.php";
$hasil = $koneksi->query("SELECT nama FROM mahasiswa");
while ($row = $hasil->fetch_assoc()) {
echo htmlspecialchars($row["nama"]) . "<br>";
}
?>
Kesalahan Umum & Solusinya
- “Access denied for user ‘root'” — username/password salah. Di XAMPP, password root biasanya kosong (
""). - “Unknown database ‘latihan'” — database belum dibuat di phpMyAdmin.
- “Connection refused” — layanan MySQL belum dinyalakan di panel XAMPP.
- Karakter aneh (mojibake) — lupa
set_charset("utf8mb4").
Tips Keamanan
Di server produksi, jangan pernah memakai user root. Buat user database khusus dengan hak akses terbatas, dan simpan kredensial di file konfigurasi yang tidak bisa diakses publik (mis. di luar folder public_html).
Kesimpulan
Anda kini menguasai tiga cara koneksi PHP ke database MySQL: mysqli prosedural, mysqli objek, dan PDO. Untuk proyek baru, PDO adalah pilihan terbaik karena fleksibel dan aman. Setelah koneksi berhasil, langkah berikutnya adalah menyimpan dan menampilkan data lewat form input dan operasi CRUD.
Referensi: untuk penjelasan fungsi lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

