Database MySQL dengan PDO
PHP Data Objects (PDO) adalah cara yang lebih fleksibel dan aman untuk berinteraksi dengan database MySQL. Berikut adalah panduan dasar menggunakan PDO dengan PHP.
1. Menghubungkan ke Database
Gunakan new PDO()
untuk membuat koneksi ke MySQL.
<?php
$dsn = "mysql:host=localhost;dbname=my_database";
$username = "root";
$password = "";
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Koneksi berhasil";
} catch (PDOException $e) {
echo "Koneksi gagal: " . $e->getMessage();
}
?>
2. Membuat Tabel
<?php
$sql = "CREATE TABLE Users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL
)";
try {
$pdo->exec($sql);
echo "Tabel Users berhasil dibuat";
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>
3. Menyisipkan Data
<?php
$sql = "INSERT INTO Users (username, email) VALUES (:username, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':username' => 'johndoe',
':email' => 'johndoe@example.com'
]);
echo "Data berhasil ditambahkan";
?>
4. Membaca Data
<?php
$sql = "SELECT id, username, email FROM Users";
$stmt = $pdo->query($sql);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "ID: " . $row["id"]. " - Nama: " . $row["username"]. " - Email: " . $row["email"] . "<br>";
}
?>
5. Memperbarui Data
<?php
$sql = "UPDATE Users SET email=:email WHERE username=:username";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':email' => 'newemail@example.com',
':username' => 'johndoe'
]);
echo "Data berhasil diperbarui";
?>
6. Menghapus Data
<?php
$sql = "DELETE FROM Users WHERE username=:username";
$stmt = $pdo->prepare($sql);
$stmt->execute([':username' => 'johndoe']);
echo "Data berhasil dihapus";
?>
7. Menutup Koneksi
PDO tidak memerlukan fungsi eksplisit untuk menutup koneksi, cukup mengatur objek PDO menjadi null
:
<?php
$pdo = null;
?>
8. Kesimpulan
- Gunakan PDO untuk koneksi database yang lebih aman dan fleksibel.
- Gunakan parameter binding untuk menghindari SQL Injection.
- Gunakan
try-catch
untuk menangani kesalahan koneksi atau query.
Dengan PDO, aplikasi PHP dapat mengelola database dengan lebih aman dan portabel.