اسکریپت PHP برای عملیات CRUD با استفاده از PDO: راهنمای کامل و جامع


در دنیای برنامه‌نویسی وب، ارتباط با پایگاه داده‌ها و مدیریت داده‌ها، یکی از اصول اساسی و حیاتی است. عملیات CRUD که مخفف Create، Read، Update، و Delete است، چهار عملیات پایه‌ای هستند که هر توسعه‌دهنده وب باید به خوبی با آن‌ها آشنا باشد. در این مقاله، قصد داریم به صورت کامل و جامع، نحوه پیاده‌سازی این عملیات با زبان PHP و استفاده از PDO (PHP Data Objects) را بررسی کنیم. PDO به عنوان یک معیار استاندارد و امن برای ارتباط با دیتابیس‌های مختلف، به برنامه‌نویسان این امکان را می‌دهد تا با روش‌هایی امن و کارآمد، عملیات بر روی داده‌ها انجام دهند.

چرا PDO و چه مزایایی دارد؟


قبل از شروع، بیایید کمی درباره PDO صحبت کنیم. PDO یک لایه انتزاعی است که اجازه می‌دهد برنامه‌نویسان با انواع مختلف دیتابیس‌ها، مانند MySQL، PostgreSQL، SQLite و دیگران، به راحتی ارتباط برقرار کنند. یکی از مهم‌ترین مزایای PDO، امنیت آن در برابر حملات SQL Injection است، زیرا این کتابخانه از prepared statements بهره می‌برد، که می‌تواند داده‌های ورودی را به صورت امن و بدون نگرانی درباره دستکاری در کوئری‌ها، مدیریت کند.

ساختار کلی پروژه CRUD با PDO


برای پیاده‌سازی عملیات CRUD، نیاز به چند بخش اصلی داریم:
  1. اتصال به دیتابیس: ابتدا باید با دیتابیس ارتباط برقرار کنیم.

  1. ایجاد داده (Create): افزودن رکوردهای جدید.

  1. خواندن داده‌ها (Read): نمایش داده‌ها.

  1. به‌روزرسانی داده‌ها (Update): تغییر داده‌های موجود.

  1. حذف داده‌ها (Delete): حذف رکوردهای خاص.
    در ادامه، هر بخش را به تفصیل شرح می‌دهیم.
    ---

    1. اتصال به دیتابیس با PDO


اولین قدم، تعریف یک اسکریپت برای اتصال است. فرض کنیم دیتابیس ما MySQL است و نام آن `test_db` است، با کاربر `root` و پسورد خالی. کد نمونه:
php  

<?php

try {

$dsn = 'mysql:host=localhost;dbname=test_db;charset=utf8mb4';

$username = 'root';

$password = '';

$options = [

PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,

PDO::ATTR_EMULATE_PREPARES => false,

];
$pdo = new PDO($dsn, $username, $password, $options);

} catch (PDOException $e) {

die("خطا در اتصال به دیتابیس: " . $e->getMessage());

}

?>


در این بخش، از try-catch بهره برده‌ایم تا در صورت بروز خطا، پیام مناسبی نمایش داده شود. تنظیمات `ERRMODE_EXCEPTION` کمک می‌کند تا خطاهای SQL به صورت استثنا (Exception) مدیریت شوند، و `EMULATE_PREPARES` را false قرار داده‌ایم تا Prepared Statements به صورت واقعی اجرا شوند.
---

  1. عملیات ایجاد (Create)


برای افزودن داده جدید، از prepared statements بهره می‌گیریم. فرض کنیم جدول `users` با فیلدهای `id` (کلید اصلی و خودافزا)، `name` و `email` داریم. کد نمونه:
php  

<?php

// فرض بر این است که اتصال به پایگاه داده برقرار است

function createUser($name, $email) {

global $pdo;

$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";

$stmt = $pdo->prepare($sql);

$stmt->execute([':name' => $name, ':email... ← ادامه مطلب در magicfile.ir