پایگاه داده MySQL

اتصال به MySQL با PDO و MySQLi — INSERT، SELECT، UPDATE و DELETE

PHP و دیتابیس

PHP برای کار با دیتابیس MySQL دو روش اصلی دارد:

اتصال با PDO

<?php
$host = "localhost";
$dbname = "my_database";
$user = "root";
$pass = "";

try {
    $pdo = new PDO(
        "mysql:host=$host;dbname=$dbname;charset=utf8mb4",
        $user,
        $pass,
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
    echo "اتصال موفق!";
} catch (PDOException $e) {
    echo "خطا: " . $e->getMessage();
}
?>

ایجاد جدول (CREATE TABLE)

<?php
$sql = "CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    age INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";

$pdo->exec($sql);
?>

درج داده (INSERT)

<?php
// روش امن با Prepared Statement
$sql = "INSERT INTO users (name, email, age) VALUES (:name, :email, :age)";
$stmt = $pdo->prepare($sql);
$stmt->execute([
    ":name" => "علی",
    ":email" => "ali@example.com",
    ":age" => 25
]);

echo "ID: " . $pdo->lastInsertId();
?>

خواندن داده (SELECT)

<?php
// همه رکوردها
$stmt = $pdo->query("SELECT * FROM users");
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($users as $user) {
    echo $user["name"] . " - " . $user["email"];
}

// با شرط
$stmt = $pdo->prepare("SELECT * FROM users WHERE age > :age");
$stmt->execute([":age" => 18]);
$adults = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

به‌روزرسانی (UPDATE)

<?php
$sql = "UPDATE users SET age = :age WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([":age" => 26, ":id" => 1]);

echo $stmt->rowCount() . " رکورد به‌روزرسانی شد.";
?>

حذف (DELETE)

<?php
$sql = "DELETE FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([":id" => 1]);
?>

CRUD خلاصه

عملیاتSQL
CreateINSERT
ReadSELECT
UpdateUPDATE
DeleteDELETE
همیشه از Prepared Statement استفاده کنید تا از حملات SQL Injection جلوگیری شود!

این مبحث بخشی از دوره آموزش کامل PHP است.

ابزارهای مرتبط