ارتباط با پایگاه داده از طریق PDO
PDO (PHP Data Objects) یک لایهی یکپارچه برای اتصال PHP به پایگاههای دادهی مختلف مانند MySQL، PostgreSQL و SQLite است. مزیت اصلی PDO نسبت به توابع قدیمیتر mysqli این است که کد شما مستقل از نوع دیتابیس میماند و امکان استفاده از Prepared Statement را بهسادگی فراهم میکند که در برابر SQL Injection مقاوم است.
برای اتصال به یک پایگاهدادهی MySQL:
<?php
$host = '127.0.0.1';
$db = 'shop';
$user = 'root';
$pass = 'secret';
try {
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("خطا در اتصال: " . $e->getMessage());
}
?>
پس از برقراری اتصال میتوانید کوئریهای SELECT، INSERT، UPDATE و DELETE را اجرا کنید. برای خواندن دادهها:
$stmt = $pdo->query('SELECT id, name, price FROM products');
foreach ($stmt as $row) {
echo $row['name'] . ' - ' . $row['price'] . "\n";
}
تنظیم ATTR_ERRMODE روی حالت Exception باعث میشود در صورت بروز خطا در کوئری، برنامه یک استثنا (Exception) پرتاب کند که میتوانید آن را با try/catch مدیریت کنید، بهجای اینکه خطا بیصدا نادیده گرفته شود. در درس بعدی نحوهی درست ارسال پارامتر به کوئریها و جلوگیری از حملات رایج را بررسی میکنیم.