multi_query ফাংশন ব্যবহার

MySQLi এর সাথে Multi-query Execution - মাইএসকিউএল আই (MySQLi) - Database Tutorials

288

MySQLi এর multi_query ফাংশন একটি শক্তিশালী ফাংশন, যা একাধিক SQL কোয়েরি একসাথে এক্সিকিউট করার সুবিধা প্রদান করে। এটি বিশেষ করে তখন উপকারী যখন একাধিক কোয়েরি (যেমন: SELECT, INSERT, UPDATE, DELETE) একে অপরের সাথে সম্পর্কিত থাকে এবং একই সময় একসাথে এক্সিকিউট করতে হয়। multi_query ফাংশন একাধিক SQL স্টেটমেন্ট একযোগে প্রক্রিয়া করতে সক্ষম এবং প্রতিটি স্টেটমেন্টের ফলাফল একসাথে ফেরত দেয়।


multi_query এর ব্যবহারের সুবিধাসমূহ

  1. একাধিক কোয়েরি একসাথে এক্সিকিউট করা: আপনি একাধিক SQL কোয়েরি একসাথে ব্যবহার করতে পারেন, যেগুলি বিভিন্ন প্রক্রিয়া সম্পাদন করবে।
  2. পারফরম্যান্স উন্নতি: একাধিক কোয়েরি একসাথে এক্সিকিউট করার মাধ্যমে ডেটাবেস সার্ভারের উপর লোড কমানো যায়, কারণ এটি একক কানেকশনের মাধ্যমে একাধিক কাজ সম্পাদন করে।
  3. ফলাফল সংগ্রহ করা: প্রতিটি কোয়েরির জন্য আলাদা আলাদা ফলাফল সংগ্রহ করা সম্ভব, যা পরে ব্যবহার করা যায়।

multi_query ফাংশন ব্যবহার

ধাপ ১: একাধিক SQL কোয়েরি তৈরি করুন।

ধাপ ২: multi_query() ফাংশন ব্যবহার করে কোয়েরিগুলিকে একসাথে এক্সিকিউট করুন।

ধাপ ৩: প্রতিটি কোয়েরির ফলাফল পরিচালনা করুন।

উদাহরণ:

<?php
// ডেটাবেস কানেকশন তৈরি
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
$conn = new mysqli($servername, $username, $password, $dbname);

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

// একাধিক SQL কোয়েরি তৈরি
$sql = "SELECT * FROM users; 
        INSERT INTO users (name, age, email) VALUES ('John Doe', 25, 'john@example.com'); 
        UPDATE users SET age = 26 WHERE name = 'John Doe';";

// multi_query ফাংশন ব্যবহার
if ($conn->multi_query($sql)) {
    do {
        // প্রথম কোয়েরি এক্সিকিউট করার ফলাফল চেক করা
        if ($result = $conn->store_result()) {
            while ($row = $result->fetch_assoc()) {
                echo "User: " . $row['name'] . " - Age: " . $row['age'] . "<br>";
            }
            $result->free();
        }

        // পরবর্তী কোয়েরি থাকলে সেগুলিও এক্সিকিউট হবে
    } while ($conn->next_result());
} else {
    echo "Error: " . $conn->error;
}

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

ব্যাখ্যা:

  • SQL কোয়েরি: এখানে তিনটি SQL স্টেটমেন্ট একসাথে রয়েছে:
    1. একটি SELECT স্টেটমেন্ট যা ইউজারের তথ্য নিয়ে আসে।
    2. একটি INSERT স্টেটমেন্ট যা নতুন ইউজার ডেটা সন্নিবেশ করে।
    3. একটি UPDATE স্টেটমেন্ট যা একটি নির্দিষ্ট ইউজারের বয়স আপডেট করে।
  • multi_query(): এই ফাংশনটি একাধিক SQL কোয়েরি একসাথে প্রেরণ করে। যদি কোয়েরিগুলি সফলভাবে এক্সিকিউট হয়, তবে do-while লুপের মাধ্যমে প্রতিটি কোয়েরির ফলাফল সংগ্রহ করা হয়।
  • store_result(): SELECT কোয়েরির ফলাফলগুলি সংগ্রহ করতে ব্যবহৃত হয়। অন্য কোয়েরিগুলির জন্য এটি প্রযোজ্য নয় (যেমন INSERT বা UPDATE)।
  • next_result(): পরবর্তী কোয়েরির ফলাফল পেতে next_result() ব্যবহার করা হয়। এটি পরবর্তী কোয়েরি এক্সিকিউট হওয়ার আগ পর্যন্ত প্রক্রিয়া চালিয়ে যায়।

2. Error Handling (ত্রুটি পরিচালনা)

multi_query ব্যবহার করার সময় যদি কোনো কোয়েরি ভুল থাকে বা প্রক্রিয়ায় ত্রুটি ঘটে, তাহলে তা conn->error ব্যবহার করে জানা যাবে।

উদাহরণ:

<?php
// SQL কোয়েরি সঠিকভাবে না হলে ত্রুটি প্রক্রিয়া
$sql = "SELECT * FROM users;
        INSERT INTO non_existent_table (name) VALUES ('Error Test');";

// multi_query ফাংশন ব্যবহার
if (!$conn->multi_query($sql)) {
    echo "Error: " . $conn->error;
}
?>

এই কোডে দ্বিতীয় কোয়েরিটি ভুল হতে পারে কারণ non_existent_table টেবিলটি নেই। multi_query ত্রুটি জানালে তা conn->error মাধ্যমে দেখানো হবে।


সারাংশ

MySQLi এর multi_query ফাংশন ব্যবহার করে একাধিক SQL কোয়েরি একসাথে এক্সিকিউট করা সম্ভব, যা ডেটাবেসের কার্যকারিতা এবং পারফরম্যান্স উন্নত করে। এটি সঠিকভাবে ফলাফল সংগ্রহ এবং ত্রুটি পরিচালনার সুবিধা প্রদান করে। একাধিক কোয়েরি একসাথে প্রক্রিয়া করার জন্য multi_query একটি শক্তিশালী টুল।


Content added By
Promotion

Are you sure to start over?

Loading...