چرا PDO؟

افزونه PDO (PHP Data Objects) یک رابط یکدست برای دسترسی به پایگاه‌داده‌ها در PHP فراهم می‌کند و برخلاف mysqli از بیش از ۱۲ درایور مختلف پشتیبانی می‌کند.

اتصال به دیتابیس

try {
    $pdo = new PDO(
        'mysql:host=localhost;dbname=devhub;charset=utf8mb4',
        'root',
        'secret'
    );
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die('Connection failed');
}

کوئری‌های آماده (Prepared Statements)

مهم‌ترین قابلیت PDO برای امنیت، استفاده از prepared statements است:

$stmt = $pdo->prepare('SELECT * FROM posts WHERE slug = ?');
$stmt->execute([$slug]);
$post = $stmt->fetch();
هرگز مقدار ورودی کاربر را مستقیم داخل کوئری قرار ندهید!

نکات پایانی

  • همیشه charset=utf8mb4 را در DSN مشخص کنید.
  • حالت خطا را روی ERRMODE_EXCEPTION بگذارید.
  • برای صفحات لیست از LIMIT و صفحه‌بندی استفاده کنید.