مقدمه ای بر برنامه CRUD با PHP و PDO
برنامه CRUD (ایجاد، خواندن، بهروزرسانی و حذف) یکی از اصول پایهای در توسعه وب است. در اینجا، ما به شما نشان خواهیم داد که چگونه با استفاده از PHP و PDO (PHP Data Objects) یک برنامه CRUD بسازید.
نصب و راهاندازی محیط
برای شروع، شما به یک سرور وب نیاز دارید. میتوانید از نرمافزارهای محلی مانند XAMPP یا MAMP استفاده کنید. پس از نصب، یک پایگاه داده جدید در MySQL ایجاد کنید.
```sql
CREATE DATABASE my_database;
```
سپس یک جدول نمونه برای ذخیره اطلاعات ایجاد کنید:
```sql
CREATE TABLE users (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL
);
```
اتصال به پایگاه داده با PDO
در این مرحله، به پایگاه داده متصل میشویم. کد زیر را در فایلی به نام `db.php` قرار دهید:
```php
<?php
$host = '
- 0.0.1';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
?>
```
ایجاد عملیات CRUD
- CREATE
برای ایجاد یک کاربر جدید، از کد زیر استفاده کنید:
```php
<?php
require 'db.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$email = $_POST['email'];
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->execute([$name, $email]);
}
?>
```
- READ
برای خواندن دادهها، میتوانید از کد زیر استفاده کنید:
```php
<?php
$stmt = $pdo->query("SELECT * FROM users");
$users = $stmt->fetchAll();
?>
```
- UPDATE
برای بهروزرسانی اطلاعات یک کاربر، کد زیر را استفاده کنید:
```php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST['id'];
$name = $_POST['name'];
$email = $_POST['email'];
$stmt = $pdo->prepare("UPDATE users SET name = ?, email = ? WHERE id = ?");
$stmt->execute([$name, $email, $id]);
}
?>
```
- DELETE
و برای حذف یک کاربر، از کد زیر استفاده کنید:
```php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST['id'];
$stmt = $pdo->prepare("DELETE FROM users WHERE id = ?");
$stmt->execute([$id]);
}
?>
```
نتیجهگیری
این برنامه CRUD به شما امکان میدهد تا با PHP و PDO به سادگی عملیات ایجاد، خواندن، بهروزرسانی و حذف را بر روی دادهها انجام دهید. با انجام این مراحل، شما یک پایه محکم برای توسعه برنامههای وب خواهید داشت. با گسترش این کد و افزودن ویژگیهای جدید، میتوانید برنامههای پیچیدهتری ایجاد کنید.
ساختن برنامه CRUD با PHP و رابط PDO: راهنمای جامع و کامل
در این مقاله، قصد داریم به صورت کامل و جامع فرآیند ساخت یک برنامه CRUD (ایجاد، خواندن، بروزرسانی، حذف) با PHP و استفاده از رابط PDO (PHP Data Objects) را شرح دهیم. این روش، یکی از بهترین و امنترین روشها برای مدیریت دیتابیسهای MySQL است، چرا که PDO قابلیت استفاده از پارامترهای ایمن و جلوگیری از حملات SQL Injection را دارد.
مرحله اول: آمادهسازی محیط توسعه
قبل از هر چیز، باید یک محیط توسعه مناسب داشته باشید. فرض کنیم که شما از XAMPP یا WAMP استفاده میکنید. این پکیجها سرور Apache، PHP و MySQL را به صورت کامل در اختیار شما قرار میدهند. پس، ابتدا باید یک دیتابیس در MySQL بسازید.
مرحله دوم: ساخت دیتابیس و جدول
برای شروع، وارد phpMyAdmin شوید و یک دیتابیس جدید ایجاد کنید. فرض کنیم نام آن `test_db` است. سپس، جدول زیر را ایجاد کنید:
```sql
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
email VARCHAR(100),
age INT
);
```
این جدول، اطلاعات کاربران را نگهداری میکند.
مرحله سوم: ایجاد فایل پیکربندی اتصال به دیتابیس
در پروژه، یک فایل به نام `config.php` بسازید و کد زیر را در آن قرار دهید:
```php
<?php
$host = 'localhost';
$db_name = 'test_db';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$db_name", $username, $password);
// تنظیم حالت خطا به استثنا
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("خطا در اتصال: " . $e->getMessage());
}
?>
```
این فایل، اتصال امن و پایدار را با دیتابیس برقرار میکند.
مرحله چهار: ساخت صفحات CRUD
۱. صفحه نمایش دادهها (`index.php`)
در این صفحه، تمام کاربران را نمایش میدهیم:
```php
<?php
include 'config.php';
$stmt = $pdo->prepare("SELECT * FROM users");
$stmt->execute();
$users = $stmt->fetchAll();
?>
<!DOCTYPE html>
<html>
<head>
<title>لیست کاربران</title>
</head>
<body>
<h2>لیست کاربران</h2>
<a href="create.php">ایجاد کاربر جدید</a>
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th>ID</th>
<th>نام</th>
<th>ایمیل</th>
<th>سن</th>
<th>عملیات</th>
</tr>
<?php foreach($users as $user): ?>
<tr>
<td><?= $user['id']; ?></td>
<td><?= $user['name']; ?></td>
<td><?= $user['email']; ?></td>
<td><?= $user['age']; ?></td>
<td>
<a href="edit.php?id=<?= $user['id']; ?>">ویرایش</a> |
<a href="delete.php?id=<?= $user['id']; ?>">حذف</a>
</td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
```
۲. صفحه ایجاد کاربر (`create.php`)
در این صفحه، فرم ثبت کاربر جدید قرار میگیرد:
```php
<?php
include 'config.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = $_POST['name'];
$email = $_POST['email'];
$age = $_POST['age'];
$stmt = $pdo->prepare("INSERT INTO users (name, email, age) VALUES (?, ?, ?)");
$stmt->execute([$name, $email, $age]);
header("Location: index.php");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>ایجاد کاربر جدید</title>
</head>
<body>
<h2>ایجاد کاربر جدید</h2>
<form method="post" action="">
نام: <input type="text" name="name" required><br>
ایمیل: <input type="email" name="email" required><br>
سن: <input type="number" name="age" required><br>
<button type="submit">ثبت</button>
</form>
</body>
</html>
```
۳. صفحه ویرایش کاربر (`edit.php`)
در این صفحه، اطلاعات کاربر مورد نظر بارگذاری و قابل ویرایش است:
```php
<?php
include 'config.php';
$id = $_GET['id'];
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = $_POST['name'];
$email = $_POST['email'];
$age = $_POST['age'];
$stmt = $pdo->prepare("UPDATE users SET name=?, email=?, age=? WHERE id=?");
$stmt->execute([$name, $email, $age, $id]);
header("Location: index.php");
}
// بارگذاری اطلاعات فعلی کاربر
$stmt = $pdo->prepare("SELECT * FROM users WHERE id=?");
$stmt->execute([$id]);
$user = $stmt->fetch();
?>
<!DOCTYPE html>
<html>
<head>
<title>ویرایش کاربر</title>
</head>
<body>
<h2>ویرایش کاربر</h2>
<form method="post" action="">
نام: <input type="text" name="name" value="<?= $user['name']; ?>" required><br>
ایمیل: <input type="email" name="email" value="<?= $user['email']; ?>" required><br>
سن: <input type="number" name="age" value="<?= $user['age']; ?>" required><br>
<button type="submit">بروزرسانی</button>
</form>
</body>
</html>
```
۴. صفحه حذف کاربر (`delete.php`)
در این صفحه، کاربر حذف میشود و سپس به صفحه اصلی برگشت داده میشود:
```php
<?php
include 'config.php';
$id = $_GET['id'];
$stmt = $pdo->prepare("DELETE FROM users WHERE id=?");
$stmt->execute([$id]);
header("Location: index.php");
?>
```
جمعبندی
در این راهنما، تمامی مراحل ساخت یک برنامه CRUD کامل با PHP و PDO را آموزش دادیم. این روش، نه تنها ساده است، بلکه امنیت بالایی دارد، زیرا با استفاده از پارامترهای آماده، از حملات SQL Injection جلوگیری میکند. برای بهبود بیشتر، میتوانید از فرمهای پیشرفتهتر، اعتبارسنجی دادهها، و طراحی رابط کاربری بهتر بهره ببرید، ولی ساختار پایه به همین شکل است.
امیدوارم این آموزش برایتان مفید باشد و در پروژههای آیندهتان کارآمد باشد!