Berikut adalah contoh sederhana implementasi CRUD (Create, Read, Update, Delete) menggunakan PHP native dan PDO.
Struktur Folder
Copy/crud-example
├── index.php
├── create.php
├── edit.php
├── delete.php
└── db.php
1. db.php
File ini akan mengatur koneksi database.
Copy<?php
$host = 'localhost';
$db = 'database_name'; // Ganti dengan nama database Anda
$user = 'username'; // Ganti dengan username database Anda
$pass = 'password'; // Ganti dengan password database Anda
try {
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
2. index.php
File ini akan menampilkan daftar data.
Copy<?php
include 'db.php';
// Fetch data
$stmt = $pdo->query("SELECT * FROM users");
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CRUD PHP PDO</title>
</head>
<body>
<h1>Daftar Pengguna</h1>
<a href="create.php">Tambah Pengguna</a>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>Nama</th>
<th>Email</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php foreach ($users as $user): ?>
<tr>
<td><?php echo $user['id']; ?></td>
<td><?php echo $user['name']; ?></td>
<td><?php echo $user['email']; ?></td>
<td>
<a href="edit.php?id=<?php echo $user['id']; ?>">Edit</a>
<a href="delete.php?id=<?php echo $user['id']; ?>" onclick="return confirm('Anda yakin ingin menghapus?');">Hapus</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</body>
</html>
3. create.php
File ini untuk menambah data baru.
Copy<?php
include 'db.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = $_POST['name'];
$email = $_POST['email'];
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->execute(['name' => $name, 'email' => $email]);
header("Location: index.php");
exit();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tambah Pengguna</title>
</head>
<body>
<h1>Tambah Pengguna</h1>
<form method="post">
<label>Nama:</label>
<input type="text" name="name" required><br>
<label>Email:</label>
<input type="email" name="email" required><br>
<input type="submit" value="Simpan">
</form>
</body>
</html>
4. edit.php
File ini untuk mengedit data yang sudah ada.
Copy<?php
include 'db.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$id = $_POST['id'];
$name = $_POST['name'];
$email = $_POST['email'];
$stmt = $pdo->prepare("UPDATE users SET name = :name, email = :email WHERE id = :id");
$stmt->execute(['name' => $name, 'email' => $email, 'id' => $id]);
header("Location: index.php");
exit();
}
$id = $_GET['id'];
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$stmt->execute(['id' => $id]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Edit Pengguna</title>
</head>
<body>
<h1>Edit Pengguna</h1>
<form method="post">
<input type="hidden" name="id" value="<?php echo $user['id']; ?>">
<label>Nama:</label>
<input type="text" name="name" value="<?php echo $user['name']; ?>" required><br>
<label>Email:</label>
<input type="email" name="email" value="<?php echo $user['email']; ?>" required><br>
<input type="submit" value="Update">
</form>
</body>
</html>
5. delete.php
File ini untuk menghapus data.
Copy<?php
include 'db.php';
if (isset($_GET['id'])) {
$id = $_GET['id'];
$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");
$stmt->execute(['id' => $id]);
header("Location: index.php");
exit();
}
6. Database Setup (MySQL)
Pastikan Anda sudah membuat database dan tabel untuk menyimpan data pengguna. Jalankan query berikut di MySQL:
CopyCREATE DATABASE database_name;
USE database_name;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
);
Penjelasan
- index.php: Menampilkan daftar pengguna.
- create.php: Form untuk menambahkan pengguna baru.
- edit.php: Form untuk mengedit data pengguna yang sudah ada.
- delete.php: Menghapus pengguna berdasarkan ID.
- db.php: Koneksi ke database menggunakan PDO.
Ini adalah contoh CRUD sederhana. Anda dapat mengembangkannya lebih lanjut dengan menambahkan validasi atau fitur lain sesuai kebutuhan. Pastikan untuk menggantidatabase_name
,username
, danpassword
dengan informasi database Anda yang sebenarnya.
Referensi Lainnya :
- https://drive.google.com/file/d/13orWusNkcZQ4zL_Qy-atZlvR9sXl3ku8/view?usp=classroom_web&authuser=0
- https://drive.google.com/file/d/1dNk-_zj3GloRu6ZB96XeGXCMQ-tapBfm/view?usp=classroom_web&authuser=0
- https://drive.google.com/file/d/1eqpZ1vtVESCx9JvbOOYNLoYeWZ4nCpot/view?usp=classroom_web&authuser=0
- https://drive.google.com/file/d/1ZytJEN2asGe1WZaw7XJoxWykRbQuUXPW/view?usp=classroom_web&authuser=0