MySQLi (MySQL Improved) একটি শক্তিশালী টুল যা MySQL ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করার জন্য ব্যবহৃত হয়। Multi-query execution এর মাধ্যমে একাধিক SQL কুয়েরি একসাথে চালানো যায়। তবে, একাধিক কুয়েরি একসাথে চালানোর সময় যদি কোনো ত্রুটি (error) ঘটে, তবে তা সঠিকভাবে হ্যান্ডল করা খুবই গুরুত্বপূর্ণ।
MySQLi Multi-query Execution
MySQLi ড্রাইভার ব্যবহার করে একাধিক কুয়েরি একসাথে চালানোর জন্য multi_query() মেথড ব্যবহার করা হয়। এই মেথডটি একাধিক কুয়েরি প্রসেস করতে সক্ষম, তবে একে সঠিকভাবে ব্যবহারের জন্য error-handling এর পদ্ধতি জানা অত্যন্ত প্রয়োজন।
<?php
$mysqli = new mysqli("localhost", "username", "password", "database_name");
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
$query = "SELECT * FROM users; INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');";
if ($mysqli->multi_query($query)) {
do {
// প্রাপ্ত ফলাফল বা ত্রুটি চেক করা হচ্ছে
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
echo "User: " . $row['name'] . "\n";
}
$result->free();
}
} while ($mysqli->more_results() && $mysqli->next_result());
} else {
echo "Error: " . $mysqli->error;
}
$mysqli->close();
?>
Error Handling in Multi-query Execution
এখানে multi_query() মেথডটি ব্যবহার করা হয়েছে, যা একাধিক কুয়েরি একসাথে প্রক্রিয়া করে। যদি কোনো কুয়েরিতে সমস্যা ঘটে, তবে তা সঠিকভাবে চিহ্নিত এবং হ্যান্ডল করা জরুরি।
- Error Checking After Execution:
multi_query()সফল হলেtrueরিটার্ন করে, আর ত্রুটি ঘটলেfalseরিটার্ন করে। তাই, প্রথমে চেক করা হয় যে কুয়েরি সফলভাবে সম্পন্ন হয়েছে কিনা। - Handling Multiple Results: একাধিক কুয়েরি চলানোর সময়, প্রতিটি কুয়েরির ফলাফল আলাদা ভাবে চেক করা হয়। যদি কোনো কুয়েরি ত্রুটি প্রদান করে, তাহলে পরবর্তী কুয়েরির প্রসেসিং থামিয়ে দেওয়া উচিত।
- Error Message: ত্রুটি ঘটলে,
$mysqli->errorব্যবহার করে ত্রুটির বার্তা সংগ্রহ করা যায়। এটি আপনার কুয়েরির সমস্যা বা MySQL সার্ভারের অন্যান্য ত্রুটি সম্পর্কে বিস্তারিত তথ্য প্রদান করে।
Error Handling Example
<?php
$query = "SELECT * FROM users; INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane@example.com');";
if ($mysqli->multi_query($query)) {
do {
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
echo "User: " . $row['name'] . "\n";
}
$result->free();
}
} while ($mysqli->more_results() && $mysqli->next_result());
} else {
echo "Query Error: " . $mysqli->error; // Error message displayed here
}
?>
MySQLi এর Multi-query execution এর সময় ত্রুটির সঠিক হ্যান্ডলিং নিশ্চিত করার জন্য, উপরোক্ত পদ্ধতিটি অনুসরণ করা উচিত। একাধিক কুয়েরির প্রক্রিয়াকরণ নিশ্চিত করতে more_results() এবং next_result() মেথডগুলোও ব্যবহার করা হয়।
Read more