Koneksi PHP ke Database MySQL (MySQLi)

By | 12 October 2025

Setelah mempelajari MySQL dan phpMyAdmin, kini saatnya menghubungkan PHP dengan database agar aplikasi web kamu bisa menyimpan dan membaca data secara otomatis.

PHP menyediakan beberapa cara untuk terhubung ke MySQL:

  1. MySQLi (MySQL Improved) – cara modern dan direkomendasikan.

  2. PDO (PHP Data Objects) – lebih fleksibel, tapi sedikit lebih kompleks.

  3. mysql_* (fungsi lama, sudah tidak digunakan lagi).

Dalam seri ini, kita fokus menggunakan MySQLi karena lebih sederhana dan cocok untuk pemula.

1. Menyiapkan Database

Kita akan menggunakan database toko_online dan tabel produk seperti yang sudah dibuat sebelumnya:

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

2. Struktur File Project

Buat folder di htdocs, misalnya:

C:\xampp\htdocs\belajarphp\

Buat dua file di dalamnya:

config.php
koneksi.php

3. Membuat File Koneksi PHP

Buka file config.php, isi dengan konfigurasi database kamu:

<?php
$host = "localhost";    // Server (biasanya localhost)
$user = "root";         // Username default XAMPP
$pass = "";             // Password (kosong secara default)
$db   = "toko_online";  // Nama database
?>

Kemudian buka koneksi.php dan tuliskan:

<?php
include "config.php";

// Membuat koneksi ke MySQL
$conn = mysqli_connect($host, $user, $pass, $db);

// Mengecek koneksi
if (!$conn) {
    die("Koneksi gagal: " . mysqli_connect_error());
}

echo "Koneksi berhasil ke database '$db'";
?>

Simpan file tersebut, lalu buka di browser:

http://localhost/belajarphp/koneksi.php

Jika berhasil, akan tampil pesan:

Koneksi berhasil ke database 'toko_online'

4. Penjelasan Kode

Baris Penjelasan
mysqli_connect() Fungsi untuk membuka koneksi ke MySQL.
$conn Variabel penampung koneksi.
mysqli_connect_error() Menampilkan pesan jika koneksi gagal.
die() Menghentikan program jika terjadi error.

5. Menguji Koneksi Gagal

Coba ubah nama database di config.php jadi salah:

$db = "database_salah";

Lalu buka ulang koneksi.php.

Output:

Koneksi gagal: Unknown database 'database_salah'

Artinya pengecekan koneksi berfungsi dengan baik.
Selalu gunakan validasi seperti ini agar aplikasi kamu lebih aman dan mudah dideteksi saat error.

6. Menggunakan Koneksi di File Lain

Daripada menulis ulang koneksi di setiap file, kamu cukup include file koneksi.php di file lain.

Contoh:

<?php
include "koneksi.php";

$sql = "SELECT * FROM produk";
$result = mysqli_query($conn, $sql);

while ($row = mysqli_fetch_assoc($result)) {
    echo $row['nama_produk'] . " - Rp" . number_format($row['harga']) . "<br>";
}
?>

Penjelasan:

  • mysqli_query() digunakan untuk menjalankan perintah SQL.

  • mysqli_fetch_assoc() mengambil hasil query dalam bentuk array asosiatif.

Output (jika tabel produk sudah berisi data):

Laptop - Rp15,000,000  
Keyboard - Rp500,000  
Mouse - Rp200,000

7. Menutup Koneksi

Setelah selesai, tutup koneksi dengan:

mysqli_close($conn);

Walau PHP akan otomatis menutup koneksi di akhir eksekusi, menutup secara manual adalah kebiasaan baik dalam aplikasi besar.

8. Struktur Koneksi MySQLi dengan Fungsi (Opsional)

Agar lebih rapi, kamu bisa membuat fungsi koneksi di satu file:

<?php
function getConnection() {
    $conn = mysqli_connect("localhost", "root", "", "toko_online");
    if (!$conn) {
        die("Koneksi gagal: " . mysqli_connect_error());
    }
    return $conn;
}
?>

Lalu panggil di file lain:

$conn = getConnection();

Dengan cara ini, kode lebih modular dan mudah digunakan kembali di banyak file.

9. Tips Keamanan

  1. Jangan menampilkan detail error di halaman produksi.

  2. Simpan file config.php di folder yang tidak bisa diakses publik (jika di hosting).

  3. Gunakan password MySQL dan ubah user default root bila di server online.

  4. Selalu lakukan escape atau prepared statements sebelum menjalankan query untuk mencegah SQL Injection (akan dibahas nanti).

Kesimpulan

Di bagian ini kamu sudah belajar:

  • Membuat file koneksi PHP ke database MySQL menggunakan MySQLi.

  • Mengecek koneksi berhasil atau gagal.

  • Menggunakan koneksi untuk menjalankan query.

  • Menutup koneksi dengan aman.