BAB 15: PHP dan Database MySQL – Mengelola Data dengan Efisien

BAB 15: PHP dan Database MySQL – Mengelola Data dengan Efisien

Database adalah bagian penting dari aplikasi web. Dengan PHP dan MySQL, Anda bisa menyimpan, membaca, mengubah, dan menghapus data dengan mudah. Di bab ini, kita akan belajar koneksi database, CRUD dasar, query SQL, dan teknik keamanan.


Koneksi Database

PHP menyediakan dua cara populer untuk terhubung ke MySQL: MySQLi dan PDO.

1. Koneksi dengan MySQLi

<?php
$host = "localhost";
$user = "root";
$pass = "";
$db   = "db_test";

$conn = mysqli_connect($host, $user, $pass, $db);

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

2. Koneksi dengan PDO

<?php
try {
    $conn = new PDO("mysql:host=localhost;dbname=db_test", "root", "");
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Koneksi berhasil!";
} catch(PDOException $e) {
    echo "Koneksi gagal: " . $e->getMessage();
}
?>

CRUD Dasar

CRUD adalah operasi dasar pada database: Create, Read, Update, Delete.

1. Create (INSERT)

<?php
$sql = "INSERT INTO users (nama, email) VALUES ('Budi', 'budi@example.com')";
mysqli_query($conn, $sql);
?>

2. Read (SELECT)

<?php
$result = mysqli_query($conn, "SELECT * FROM users");
while($row = mysqli_fetch_assoc($result)) {
    echo $row['nama'] . " - " . $row['email'] . "<br>";
}
?>

3. Update

<?php
$sql = "UPDATE users SET email='budi123@example.com' WHERE nama='Budi'";
mysqli_query($conn, $sql);
?>

4. Delete

<?php
$sql = "DELETE FROM users WHERE nama='Budi'";
mysqli_query($conn, $sql);
?>

Menjalankan Query SQL

PHP menyediakan beberapa cara untuk menjalankan query SQL:

  • mysqli_query() → untuk MySQLi
  • PDO->query() → untuk PDO
  • PDO->prepare() dan PDOStatement->execute() → untuk prepared statement

Prepared Statement (Keamanan)

Prepared statement mencegah SQL Injection dengan memisahkan query dan data:

Contoh MySQLi

<?php
$stmt = $conn->prepare("INSERT INTO users (nama, email) VALUES (?, ?)");
$stmt->bind_param("ss", $nama, $email);

$nama = "Siti";
$email = "siti@example.com";
$stmt->execute();
?>

Contoh PDO

<?php
$stmt = $conn->prepare("INSERT INTO users (nama, email) VALUES (:nama, :email)");
$stmt->bindParam(':nama', $nama);
$stmt->bindParam(':email', $email);

$nama = "Andi";
$email = "andi@example.com";
$stmt->execute();
?>

Menangani Hasil Query

Setelah menjalankan query SELECT, hasilnya bisa diproses:

<?php
$result = mysqli_query($conn, "SELECT * FROM users");
if(mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo $row['nama'] . "<br>";
    }
} else {
    echo "Data tidak ditemukan";
}
?>

Dengan kombinasi CRUD, prepared statement, dan hasil query, Anda bisa membuat aplikasi PHP yang dinamis, aman, dan handal.