Menara Edukasi

Koneksikan Website dengan MySQL menggunakan PHP

Panduan lengkap dari dasar hingga praktik terbaik

Pelajari Lebih Lanjut di Kursus Kami

Mengapa PHP dan MySQL?

PHP dan MySQL adalah kombinasi powerful untuk pengembangan web. PHP sebagai bahasa server-side dan MySQL sebagai sistem manajemen database relasional bekerja sangat baik bersama-sama, terutama untuk aplikasi web dinamis.

Keunggulan PHP-MySQL

  • Kompatibilitas tinggi
  • Komunitas besar
  • Dokumentasi lengkap
  • Cocok untuk pemula

Aplikasi Umum

  • Sistem CMS (WordPress)
  • Aplikasi e-commerce
  • Sistem manajemen konten
  • Web aplikasi perusahaan

Yang Akan Dipelajari

  • Koneksi dasar
  • CRUD operations
  • Keamanan database
  • Best practices

Metode Koneksi PHP-MySQL

1. MySQLi (Procedural)

Cara tradisional menggunakan fungsi-fungsi procedural. Cocok untuk pemula.

<?php
// 1. Koneksi MySQLi Procedural
$servername = "localhost";
$username = "username";
$password = "password";
$database = "nama_database";

// Buat koneksi
$conn = mysqli_connect($servername, $username, $password, $database);

// Cek koneksi
if (!$conn) {
    die("Koneksi gagal: " . mysqli_connect_error());
}
echo "Koneksi berhasil";
?>

Kelebihan:

  • Sederhana dan mudah dipahami
  • Cocok untuk script kecil
  • Dukungan luas

2. MySQLi (Object-Oriented)

Pendekatan OOP dengan MySQLi. Lebih terstruktur dan mudah dikelola.

<?php
// 2. Koneksi MySQLi Object-Oriented
$servername = "localhost";
$username = "username";
$password = "password";
$database = "nama_database";

// Buat koneksi
$conn = new mysqli($servername, $username, $password, $database);

// Cek koneksi
if ($conn->connect_error) {
    die("Koneksi gagal: " . $conn->connect_error);
}
echo "Koneksi berhasil";
?>

Kelebihan:

  • Kode lebih terorganisir
  • Mendukung prepared statements
  • Dukungan transaction

3. PDO (Recommended)

PHP Data Objects - fleksibel dan mendukung berbagai database.

<?php
// 3. Koneksi PDO (Recommended)
try {
    $conn = new PDO(
        "mysql:host=localhost;dbname=nama_database",
        "username",
        "password"
    );
    
    // Set error mode ke exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Koneksi berhasil"; 
} catch(PDOException $e) {
    die("Koneksi gagal: " . $e->getMessage());
}
?>

Kelebihan:

  • Dukungan multi-database
  • Named parameters
  • Error handling lebih baik
  • Lebih aman

Langkah-langkah Koneksi

1. Persiapan Awal

  • Pastikan server PHP dan MySQL sudah terinstall (XAMPP/WAMP/LAMP)
  • Buat database dan tabel di MySQL (bisa menggunakan phpMyAdmin)
  • Siapkan kredensial database (username, password, nama database)

2. Pilih Metode Koneksi

  • MySQLi (Procedural) - untuk pemula
  • MySQLi (Object-Oriented) - lebih terstruktur
  • PDO (PHP Data Objects) - paling fleksibel dan recommended

3. Langkah-langkah Koneksi

  • Tentukan parameter koneksi (host, username, password, database)
  • Buat objek koneksi
  • Tangani error jika koneksi gagal
  • Lakukan operasi database (query, insert, update, delete)
  • Tutup koneksi setelah selesai

4. Praktik Terbaik

  • Selalu gunakan prepared statement untuk mencegah SQL injection
  • Simpan kredensial database di file terpisah (config.php)
  • Gunakan try-catch untuk menangani error (khusus PDO)
  • Hindari menampilkan error langsung ke user
  • Gunakan password yang kuat untuk database

Contoh Implementasi

Contoh Query SELECT

<?php
// 4. Contoh Query SELECT
$sql = "SELECT id, nama, email FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " - Nama: " . $row["nama"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 hasil";
}
?>

Praktik Keamanan (Prepared Statement)

<?php
// 5. Praktik Keamanan (Prepared Statement)
$stmt = $conn->prepare("INSERT INTO users (nama, email) VALUES (?, ?)");
$stmt->bind_param("ss", $nama, $email);

// Set parameter dan eksekusi
$nama = "John Doe";
$email = "john@example.com";
$stmt->execute();

echo "Data berhasil ditambahkan";
$stmt->close();
?>

Penting!

Selalu gunakan prepared statement untuk mencegah SQL injection. Jangan pernah menggabungkan string langsung dengan input user.

Praktik Terbaik

Yang Harus Dilakukan

  • Gunakan PDO atau MySQLi (hindari mysql_*)
  • Selalu gunakan prepared statements
  • Simpan kredensial di file terpisah (config.php)
  • Gunakan try-catch untuk error handling
  • Validasi semua input user

Yang Harus Dihindari

  • Jangan simpan password di plain text
  • Hindari menampilkan error database ke user
  • Jangan gunakan query concatenation dengan input user
  • Jangan gunakan user root untuk koneksi web
  • Jangan biarkan koneksi terbuka terlalu lama

Kursus Intensif Web Developer

Raih karir sebagai Web Developer profesional dalam 16 minggu dengan bimbingan mentor berpengalaman di industri!

  • Full-stack development (Frontend + Backend)
  • Belajar langsung dengan project nyata
  • Portfolio siap kerja setelah lulus
  • Garansi bisa mengulang gratis jika belum paham

Pertanyaan Umum

1. Mana yang lebih baik, MySQLi atau PDO?

PDO umumnya lebih direkomendasikan karena:

  • Dukungan untuk berbagai jenis database
  • Named parameters dalam prepared statements
  • Error handling yang lebih baik
  • Lebih portabel jika ingin ganti database
Namun MySQLi juga bagus jika hanya bekerja dengan MySQL dan membutuhkan fitur khusus MySQL.

2. Bagaimana cara mengamankan koneksi database?

Beberapa praktik keamanan penting:

  • Gunakan prepared statements untuk semua query
  • Simpan kredensial di file terpisah di luar root directory
  • Gunakan SSL untuk koneksi jika memungkinkan
  • Buat user database dengan hak akses minimal yang diperlukan
  • Update PHP dan MySQL secara berkala

3. Bagaimana menangani error koneksi dengan baik?

Untuk production:

  • Log error ke file log, jangan tampilkan ke user
  • Tampilkan pesan error umum (misal: Sistem sedang maintenance)
  • Gunakan try-catch untuk PDO
  • Untuk MySQLi, cek error dengan mysqli_error() atau $conn->error