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:
-
MySQLi (MySQL Improved) – cara modern dan direkomendasikan.
-
PDO (PHP Data Objects) – lebih fleksibel, tapi sedikit lebih kompleks.
-
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
-
Jangan menampilkan detail error di halaman produksi.
-
Simpan file
config.php
di folder yang tidak bisa diakses publik (jika di hosting). -
Gunakan password MySQL dan ubah user default
root
bila di server online. -
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.