Transactions এবং Data Consistency গাইড ও নোট

Database Tutorials - পিএইচপি মাইএসকিউএল আই (PHP MySQL)
342

ট্রানজেকশন (Transaction) কী?

ট্রানজেকশন (Transaction) হলো একটি একক ইউনিটের কাজ, যা সম্পূর্ণ বা কিছুই না হওয়ার শর্তে সম্পাদিত হয়। ট্রানজেকশনের মাধ্যমে ডেটাবেসে একাধিক কাজ একযোগে সম্পাদন করা হয়, যেগুলি সফলভাবে সম্পন্ন হলে সব কিছু সেভ হয়, আর যদি কোনো একটি অংশ ব্যর্থ হয়, তবে পুরো কাজটি বাতিল হয়ে যায়।

পিএইচপি (PHP) এবং মাইএসকিউএল (MySQL) এর মধ্যে ট্রানজেকশন ব্যবহারের মাধ্যমে ডেটাবেসের ডেটা সঠিকভাবে এবং নিরাপদভাবে পরিচালনা করা সম্ভব হয়। এটি বিশেষত গুরুত্বপূর্ণ যেখানে একাধিক ডেটাবেস অপারেশন একযোগে সম্পাদন করতে হয়, যেমন ব্যাঙ্ক ট্রানজেকশন, অর্ডার প্লেসমেন্ট ইত্যাদি।


ট্রানজেকশনের মৌলিক কমান্ড

পিএইচপি মাইএসকিউএল ব্যবহার করে ট্রানজেকশন পরিচালনা করার জন্য মূলত নিম্নলিখিত কমান্ডগুলো ব্যবহৃত হয়:

১. START TRANSACTION

এটি একটি নতুন ট্রানজেকশন শুরু করে।

২. COMMIT

যখন সব অপারেশন সফলভাবে সম্পন্ন হয়, তখন COMMIT কমান্ড ব্যবহার করে ট্রানজেকশন নিশ্চিত করা হয় এবং সব পরিবর্তন ডেটাবেসে স্থায়ী হয়ে যায়।

৩. ROLLBACK

যদি কোনো সমস্যা হয় বা কোন অপারেশন ব্যর্থ হয়, তবে ROLLBACK ব্যবহার করে ট্রানজেকশনকে বাতিল করা হয় এবং ডেটাবেস পূর্বের অবস্থায় ফিরে আসে।


ডেটা কনসিস্টেন্সি (Data Consistency) কী?

ডেটা কনসিস্টেন্সি (Data Consistency) নিশ্চিত করে যে, ডেটাবেসে সব তথ্য সঠিক এবং একটি নির্দিষ্ট নিয়মের অধীনে থাকবে। অর্থাৎ, যখন একাধিক ট্রানজেকশন একই ডেটাবেসে কাজ করে, তখন ডেটাবেসে কোন ত্রুটি বা অসামঞ্জস্য থাকবে না। এটি নিশ্চিত করতে ACID (Atomicity, Consistency, Isolation, Durability) প্রিন্সিপল ব্যবহার করা হয়।


ACID প্রিন্সিপল

ACID প্রিন্সিপল হলো ডেটাবেস ট্রানজেকশনের চারটি মূল বৈশিষ্ট্য, যা ডেটা কনসিস্টেন্সি এবং সঠিকতা নিশ্চিত করে:

১. অ্যাটমিকিটি (Atomicity)

এটি নিশ্চিত করে যে, ট্রানজেকশনের সব অপারেশন একযোগে সম্পন্ন হবে, অথবা কিছুই হবে না। অর্থাৎ, যদি কোনো একটি অপারেশন ব্যর্থ হয়, তবে পুরো ট্রানজেকশন বাতিল হয়ে যাবে।

২. কনসিস্টেন্সি (Consistency)

এটি নিশ্চিত করে যে, ট্রানজেকশন সম্পন্ন হওয়ার পরে ডেটাবেস একটি বৈধ অবস্থায় থাকবে এবং কোনো ধরনের ডেটা অসামঞ্জস্য সৃষ্টি হবে না।

৩. আইসোলেশন (Isolation)

এটি নিশ্চিত করে যে, একাধিক ট্রানজেকশন একে অপরের প্রভাব না ফেলেই কাজ করবে, অর্থাৎ একটি ট্রানজেকশনের কাজ অন্যটি শেষ হওয়ার আগে সম্পন্ন হবে না।

৪. ডিউরেবিলিটি (Durability)

এটি নিশ্চিত করে যে, একবার ট্রানজেকশন COMMIT হয়ে গেলে, সেই ডেটা ডেটাবেসে স্থায়ী হয়ে থাকবে, এমনকি সিস্টেম ক্র্যাশ হলেও।


পিএইচপি মাইএসকিউএলে ট্রানজেকশন ব্যবহারের উদাহরণ

এখানে একটি সাধারণ উদাহরণ দেওয়া হল, যেখানে পিএইচপি মাইএসকিউএল ট্রানজেকশন ব্যবহার করা হয়েছে:

<?php
// মাইএসকিউএল সংযোগ স্থাপন
$mysqli = new mysqli("localhost", "username", "password", "database");

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

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

try {
    // প্রথম ডেটাবেস অপারেশন
    $mysqli->query("UPDATE account SET balance = balance - 100 WHERE account_id = 1");

    // দ্বিতীয় ডেটাবেস অপারেশন
    $mysqli->query("UPDATE account SET balance = balance + 100 WHERE account_id = 2");

    // যদি সব কিছু ঠিক থাকে, তাহলে ট্রানজেকশন কমিট করা
    $mysqli->commit();
} catch (Exception $e) {
    // যদি কোনো সমস্যা হয়, তাহলে ট্রানজেকশন রোলব্যাক করা
    $mysqli->rollback();
    echo "Error: " . $e->getMessage();
}

$mysqli->close();
?>

এই উদাহরণে, প্রথমে begin_transaction() দ্বারা ট্রানজেকশন শুরু করা হয়, এরপর দুটি UPDATE অপারেশন করা হয়, এবং যদি কোন ত্রুটি না ঘটে, তবে commit() দ্বারা ট্রানজেকশন সেভ হয়। অন্যথায়, rollback() ব্যবহার করা হয়।


সারাংশ

ট্রানজেকশন এবং ডেটা কনসিস্টেন্সি পিএইচপি মাইএসকিউএল ডেটাবেস ব্যবস্থাপনার গুরুত্বপূর্ণ অংশ। ট্রানজেকশন ব্যবহারের মাধ্যমে ডেটাবেসে একাধিক কাজকে নিরাপদভাবে সম্পন্ন করা যায়, এবং ACID প্রিন্সিপল ডেটাবেসের সঠিকতা ও স্থায়িত্ব নিশ্চিত করে। পিএইচপি কোডের মাধ্যমে সহজেই ট্রানজেকশন ব্যবস্থাপনা করা সম্ভব, যা ডেটাবেসের অখণ্ডতা বজায় রাখে।

Content added By

Transactions কী এবং কেন গুরুত্বপূর্ণ?

278

Transactions কী?

পিএইচপি (PHP) এবং মাইএসকিউএল (MySQL) এর ক্ষেত্রে ট্রানজেকশন (Transaction) হল একটি গ্রুপ অপারেশন বা কার্যকলাপের একটি সিরিজ যা একত্রে সম্পন্ন হতে হয়। অর্থাৎ, একটি ট্রানজেকশন একাধিক SQL স্টেটমেন্টের সমন্বয় হতে পারে এবং এই স্টেটমেন্টগুলো একসাথে সফলভাবে বা ব্যর্থভাবে শেষ হতে হবে। যদি কোনো একটি স্টেটমেন্টও ব্যর্থ হয়, তাহলে পুরো ট্রানজেকশনটি বাতিল হয়ে যাবে, এবং ডাটাবেসে কোন পরিবর্তন হবে না। এটি ডাটাবেসের অ্যাটমিকিটি (Atomicity) রক্ষা করে।

একটি ট্রানজেকশনের মূল বৈশিষ্ট্য হচ্ছে:

  • অ্যাটমিকিটি (Atomicity): ট্রানজেকশনটি পুরোপুরি সফল হবে বা পুরোপুরি ব্যর্থ হবে।
  • কনসিসটেন্সি (Consistency): ডাটাবেসের অবস্থা পূর্বের সঠিক অবস্থায় ফিরে যাবে।
  • আইসোলেশন (Isolation): একাধিক ট্রানজেকশন একে অপরের কাজকে প্রভাবিত করবে না।
  • ডুরেবলিটি (Durability): ট্রানজেকশন সম্পন্ন হলে তার ফলাফল স্থায়ী হয়।

কেন গুরুত্বপূর্ণ?

  1. ডাটা সুরক্ষা: ট্রানজেকশন ডাটাবেসে ডেটার অখণ্ডতা রক্ষা করে। একাধিক স্টেটমেন্ট একসাথে চালানোর সময় যদি কোন একটি অপারেশন ব্যর্থ হয়, তাহলে পুরো ট্রানজেকশনটি রিভার্স (rollback) হয়ে যাবে, ফলে ডাটা ভুল অবস্থায় যাবে না।
  2. এটমিক অপারেশন: যখন একাধিক অপারেশন একসাথে হতে হয়, তখন ট্রানজেকশন তাদের একত্রে সফল বা ব্যর্থ করতে সাহায্য করে। এটি নিশ্চিত করে যে একটিও অপারেশন অসম্পূর্ণ হলে অন্য সব অপারেশনও বাতিল হয়ে যাবে।
  3. ডাটা সঙ্গতি: একটি ট্রানজেকশন নিশ্চিত করে যে, ডাটাবেসের কোনো তথ্য পরিবর্তন সম্পূর্ণ সঠিকভাবে সম্পন্ন হয়েছে এবং সিস্টেমের অবস্থার সাথে সামঞ্জস্যপূর্ণ।
  4. পারফরম্যান্স অপটিমাইজেশন: অনেক সময় একাধিক SQL স্টেটমেন্ট একযোগে চালানোর পরিবর্তে, ট্রানজেকশন ব্যবহার করলে একাধিক অপারেশন কম সময়ে সম্পন্ন হয়।

পিএইচপি ও মাইএসকিউএল এ ট্রানজেকশন ব্যবহার করা

পিএইচপি এবং মাইএসকিউএল (MySQL) এর মধ্যে ট্রানজেকশন ব্যবহারের জন্য কিছু সাধারণ ধাপ আছে:

  1. ট্রানজেকশন শুরু:

    $mysqli->begin_transaction();
    
  2. এনকোয়্যারি এক্সিকিউট করা: SQL স্টেটমেন্টগুলো চালান।

    $mysqli->query("INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2')");
    
  3. কমিট (Commit): যদি সবকিছু ঠিকঠাক চলে, তাহলে পরিবর্তনগুলো ডাটাবেসে চূড়ান্ত করা হয়।

    $mysqli->commit();
    
  4. রোলব্যাক (Rollback): যদি কোন ভুল ঘটে, তাহলে সবকিছু আগের অবস্থায় ফিরিয়ে নেওয়া হয়।

    $mysqli->rollback();
    

সারাংশ

পিএইচপি ও মাইএসকিউএল এ ট্রানজেকশন খুবই গুরুত্বপূর্ণ একটি ফিচার যা ডাটাবেসে একাধিক স্টেটমেন্টের একত্রিত কার্যকলাপকে সফল বা ব্যর্থ করার মাধ্যমে ডেটার সুরক্ষা, সঙ্গতি এবং অখণ্ডতা রক্ষা করে। এটি পারফরম্যান্স বৃদ্ধি এবং সিস্টেমের নির্ভরযোগ্যতা নিশ্চিত করে।

Content added By

COMMIT এবং ROLLBACK ব্যবহার

209

PHP MySQL ব্যবহার করে ডেটাবেসে ট্রানজেকশন (Transaction) পরিচালনা করা গুরুত্বপূর্ণ একটি প্রক্রিয়া। ট্রানজেকশন ব্যবহার করে আপনি একাধিক ডেটাবেস অপারেশনকে একত্রে কার্যকর করতে পারেন এবং কোনো সমস্যা হলে পূর্ববর্তী অবস্থায় ফিরে আসতে পারেন। COMMIT এবং ROLLBACK এই প্রক্রিয়াগুলির প্রধান অংশ।


COMMIT: ডেটাবেসের পরিবর্তন নিশ্চিত করা

COMMIT হল একটি SQL কমান্ড যা ডেটাবেসে করা পরিবর্তনগুলিকে স্থায়ী করে তোলে। যখন আপনি একাধিক অপারেশন (যেমন, INSERT, UPDATE, DELETE) একসাথে চালান এবং সেগুলি সফলভাবে সম্পন্ন হয়, তখন COMMIT কমান্ড ব্যবহার করে সেগুলিকে ডেটাবেসে সেভ করতে হবে। COMMIT না করলে, করা পরিবর্তনগুলি হারিয়ে যাবে।

উদাহরণ:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// ডেটাবেস কানেকশন স্থাপন
$conn = new mysqli($servername, $username, $password, $dbname);

// কানেকশন চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

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

try {
    // প্রথম SQL স্টেটমেন্ট
    $conn->query("INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')");

    // দ্বিতীয় SQL স্টেটমেন্ট
    $conn->query("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1");

    // COMMIT ব্যবহার করে পরিবর্তনগুলো স্থায়ী করা
    $conn->commit();
    echo "Transaction completed successfully!";
} catch (Exception $e) {
    // কোনো ত্রুটি হলে ROLLBACK করা
    $conn->rollback();
    echo "Transaction failed: " . $e->getMessage();
}

$conn->close();
?>

ROLLBACK: ত্রুটি ঘটলে পূর্বাবস্থায় ফিরে আসা

ROLLBACK হল একটি SQL কমান্ড যা ট্রানজেকশনের মধ্যে যেকোনো ত্রুটি ঘটলে সমস্ত পরিবর্তনকে পূর্বাবস্থায় ফিরিয়ে নিয়ে আসে। অর্থাৎ, যদি কোন একটি SQL অপারেশন ব্যর্থ হয়, তবে সমস্ত পূর্ববর্তী পরিবর্তনগুলোও বাতিল হয়ে যাবে। এটি ডেটাবেসে অযাচিত পরিবর্তন হতে রোধ করে।

উদাহরণ:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// ডেটাবেস কানেকশন স্থাপন
$conn = new mysqli($servername, $username, $password, $dbname);

// কানেকশন চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

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

try {
    // প্রথম SQL স্টেটমেন্ট
    $conn->query("INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane@example.com')");

    // ভুল SQL স্টেটমেন্ট (দ্বিতীয় অপারেশন)
    $conn->query("UPDATE accounts SET balance = balance / 0 WHERE user_id = 2");  // division by zero

    // যদি কোনো ত্রুটি না ঘটে তবে COMMIT হবে
    $conn->commit();
    echo "Transaction completed successfully!";
} catch (Exception $e) {
    // ত্রুটি ঘটলে ROLLBACK
    $conn->rollback();
    echo "Transaction failed: " . $e->getMessage();
}

$conn->close();
?>

ট্রানজেকশন ব্যবহারের গুরুত্ব

COMMIT এবং ROLLBACK ব্যবহার করে আপনি আপনার ডেটাবেস অ্যাপ্লিকেশনকে আরো নিরাপদ ও নির্ভরযোগ্য করতে পারবেন। বিশেষ করে, যদি আপনি একাধিক SQL অপারেশন একসাথে চালান, তবে এর মাধ্যমে আপনি নিশ্চিত হতে পারবেন যে ডেটাবেসে কোনো ভুল পরিবর্তন হবে না, এবং ত্রুটি ঘটলে সহজেই পূর্বাবস্থায় ফিরে আসা যাবে।


এইভাবে PHP MySQL এ COMMIT এবং ROLLBACK ব্যবহার করে আপনি আপনার ডেটাবেস পরিচালনা করতে পারবেন, যা ডেটা ইন্টিগ্রিটি (data integrity) নিশ্চিত করতে সহায়ক।

Content added By

PHP দিয়ে MySQL Transactions পরিচালনা

245

মাইএসকিউএল ট্রানজ্যাকশন (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

Multi-query Transactions এবং Error Handling

252

পিএইচপি (PHP) এবং মাইএসকিউএল (MySQL) ব্যবহার করে একাধিক কোয়েরি একসাথে একযোগে চালানোর জন্য মাল্টি-কোয়েরি ট্রানজ্যাকশন ব্যবহার করা হয়। এই পদ্ধতিতে একাধিক SQL স্টেটমেন্ট (Queries) একই ট্রানজ্যাকশনে একত্রে এক্সিকিউট করা সম্ভব হয়। এতে করে অ্যাপ্লিকেশনগুলো দ্রুত কাজ করে এবং ট্রানজেকশন কোডের মধ্যে ত্রুটি দেখা দিলে সমস্ত পরিবর্তন রোলব্যাক করা যায়, যাতে ডেটাবেসের অখণ্ডতা বজায় থাকে।

মাল্টি-কোয়েরি ট্রানজ্যাকশন কী?

মাল্টি-কোয়েরি ট্রানজ্যাকশন (Multi-query Transaction) হল একটি পদ্ধতি যেখানে একাধিক SQL কোয়েরি একসাথে একযোগে প্রক্রিয়াকৃত হয়। যখন একাধিক SQL স্টেটমেন্ট বা কোয়েরি একসাথে এক্সিকিউট করতে হয় এবং যদি কোনও একটি কোয়েরি ব্যর্থ হয়, তাহলে ট্রানজ্যাকশনটি সম্পূর্ণভাবে রোলব্যাক করা হয়। এর মাধ্যমে ডেটাবেসে অর্ধেক পরিবর্তন থেকে রক্ষা পাওয়া যায়।

পিএইচপি এবং মাইএসকিউএল ব্যবহার করে মাল্টি-কোয়েরি ট্রানজ্যাকশন বাস্তবায়ন

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// MySQL connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

// Start transaction
$conn->begin_transaction();

try {
  // Execute multiple queries
  $conn->query("INSERT INTO table1 (column1, column2) VALUES ('value1', 'value2')");
  $conn->query("INSERT INTO table2 (column1, column2) VALUES ('value3', 'value4')");
  
  // Commit transaction
  $conn->commit();
  echo "Transaction successfully completed";
} catch (Exception $e) {
  // Rollback transaction in case of error
  $conn->rollback();
  echo "Error: " . $e->getMessage();
}

// Close connection
$conn->close();
?>

এরর হ্যান্ডলিং (Error Handling)

মাল্টি-কোয়েরি ট্রানজ্যাকশনের সময় ত্রুটি হ্যান্ডলিং গুরুত্বপূর্ণ। যদি একটি কোয়েরি ব্যর্থ হয়, সেক্ষেত্রে আমরা ট্রানজ্যাকশনটি রোলব্যাক করি যাতে ডেটাবেসের কোনো অনিচ্ছাকৃত পরিবর্তন না হয়।

পিএইচপি ত্রুটি হ্যান্ডলিং: পিএইচপিতে try-catch ব্লক ব্যবহার করে ত্রুটি হ্যান্ডলিং করা হয়। যদি কোনও কোয়েরি ব্যর্থ হয়, তাহলে এটি একটি এক্সেপশন (Exception) ছুঁড়ে ফেলবে এবং সেই এক্সেপশন ক্যাচ করার মাধ্যমে আমরা ট্রানজ্যাকশন রোলব্যাক করতে পারি।

গুরুত্বপূর্ণ বিষয়াবলী

  • ট্রানজ্যাকশন শুরু করা: $conn->begin_transaction(); এই কমান্ড দিয়ে ট্রানজ্যাকশন শুরু হয়।
  • কোয়েরি এক্সিকিউট করা: একাধিক SQL কোয়েরি একসাথে $conn->query(); দিয়ে এক্সিকিউট করা হয়।
  • রোলব্যাক (Rollback): যদি কোনো ত্রুটি ঘটে, তাহলে $conn->rollback(); ব্যবহার করে সব পরিবর্তন রোলব্যাক করা হয়।
  • কমিট (Commit): সমস্ত কোয়েরি সফলভাবে এক্সিকিউট হলে $conn->commit(); দিয়ে ট্রানজ্যাকশন কমিট করা হয়।

পিএইচপি এবং মাইএসকিউএল দিয়ে মাল্টি-কোয়েরি ট্রানজ্যাকশন ব্যবহার করার ফলে কোডে আরও কার্যকরী ত্রুটি হ্যান্ডলিং এবং ডেটাবেসের অখণ্ডতা নিশ্চিত করা যায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...