چرا 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و صفحهبندی استفاده کنید.