Database Tutorials PHP দিয়ে MySQL Transactions পরিচালনা গাইড ও নোট

267

মাইএসকিউএল ট্রানজ্যাকশন (MySQL Transaction) এমন একটি প্রক্রিয়া যেখানে একাধিক SQL কুয়েরি একত্রে কার্যকর করা হয়, এবং সব কুয়েরি সফলভাবে সম্পন্ন হলে তা নিশ্চিত করা হয়। যদি কোনো কুয়েরি ব্যর্থ হয়, তবে পূর্বের সব কুয়েরি বাতিল করা হয়, যা ডেটাবেসের অবস্থান অপরিবর্তিত রাখে। PHP দিয়ে MySQL ট্রানজ্যাকশন পরিচালনা করার জন্য PDO (PHP Data Objects) বা MySQLi (MySQL Improved) ব্যবহৃত হয়।


MySQL Transaction এর মৌলিক ধারণা

MySQL ট্রানজ্যাকশন একটি সিরিজ SQL কুয়েরি থাকে যা একত্রে কার্যকর করা হয়। যদি একটি কুয়েরি ব্যর্থ হয়, তবে পুরো ট্রানজ্যাকশনটি বাতিল হয়ে যায়। এটি ডেটা ইন্টিগ্রিটি বজায় রাখতে সাহায্য করে।

ট্রানজ্যাকশন পরিচালনার প্রাথমিক ধাপ:

  1. BEGIN TRANSACTION – ট্রানজ্যাকশন শুরু করা।
  2. COMMIT – সফলভাবে সম্পন্ন হলে ট্রানজ্যাকশন প্রযোজ্য করা।
  3. ROLLBACK – কোনো সমস্যা হলে ট্রানজ্যাকশন বাতিল করা।

PHP তে MySQL Transactions পরিচালনা

PHP দিয়ে MySQL ট্রানজ্যাকশন পরিচালনার জন্য PDO বা MySQLi ব্যবহৃত হয়। নিচে PDO ব্যবহার করে উদাহরণ দেওয়া হলো।

PDO দিয়ে ট্রানজ্যাকশন পরিচালনা:

<?php
try {
    // PDO কানেকশন তৈরি
    $pdo = new PDO("mysql:host=localhost;dbname=testdb", "root", "");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // ট্রানজ্যাকশন শুরু
    $pdo->beginTransaction();

    // প্রথম কুয়েরি
    $pdo->exec("INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')");

    // দ্বিতীয় কুয়েরি
    $pdo->exec("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1");

    // সফল হলে ট্রানজ্যাকশন কমিট করা
    $pdo->commit();
    echo "Transaction completed successfully!";
} catch (Exception $e) {
    // কোনো ত্রুটি ঘটলে রোলব্যাক করা
    $pdo->rollBack();
    echo "Failed: " . $e->getMessage();
}
?>

MySQLi দিয়ে ট্রানজ্যাকশন পরিচালনা

<?php
// MySQLi কানেকশন তৈরি
$mysqli = new mysqli("localhost", "root", "", "testdb");

// চেক করা যে কানেকশন সফল হয়েছে কি না
if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

// ট্রানজ্যাকশন শুরু
$mysqli->begin_transaction();

try {
    // প্রথম কুয়েরি
    $mysqli->query("INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane@example.com')");

    // দ্বিতীয় কুয়েরি
    $mysqli->query("UPDATE accounts SET balance = balance - 100 WHERE user_id = 2");

    // সফল হলে ট্রানজ্যাকশন কমিট করা
    $mysqli->commit();
    echo "Transaction completed successfully!";
} catch (Exception $e) {
    // কোনো ত্রুটি ঘটলে রোলব্যাক করা
    $mysqli->rollback();
    echo "Failed: " . $e->getMessage();
}

// কানেকশন বন্ধ করা
$mysqli->close();
?>

সারাংশ

PHP দিয়ে MySQL ট্রানজ্যাকশন পরিচালনা করতে PDO বা MySQLi ব্যবহার করা যায়। ট্রানজ্যাকশনে একাধিক কুয়েরি একসাথে কার্যকর করা হয় এবং যদি কোনো কুয়েরি ব্যর্থ হয়, তাহলে পুরো ট্রানজ্যাকশনটি রোলব্যাক করা হয়, যা ডেটাবেসের অবস্থা অপরিবর্তিত রাখে।

Content added By
Promotion

Are you sure to start over?

Loading...