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.
Contents
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 MySQLiPDO->query()→ untuk PDOPDO->prepare()danPDOStatement->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.