MySQLi ব্যবহার করে ডেটাবেস থেকে ডেটা রিড করা (SELECT কুয়েরি এক্সিকিউট করা) একটি খুব সাধারণ কাজ। MySQLi বিভিন্ন পদ্ধতি প্রদান করে যেগুলোর মাধ্যমে SELECT কুয়েরি ব্যবহার করে ডেটা এক্সট্র্যাক্ট করা যায়। MySQLi দিয়ে SELECT কুয়েরি চালানোর দুটি প্রধান পদ্ধতি রয়েছে:
- Procedural স্টাইল
- Object-Oriented স্টাইল
এই গাইডে, আমরা বিস্তারিতভাবে দুটি পদ্ধতি দেখব এবং দেখব কিভাবে ডেটাবেস থেকে ডেটা রিড করা যায়।
১. Procedural স্টাইলের মাধ্যমে ডেটা রিড করা
Procedural স্টাইলে MySQLi ব্যবহার করার জন্য mysqli_query() এবং mysqli_fetch_assoc() ফাংশন ব্যবহার করা হয়। এখানে mysqli_query() ফাংশন দিয়ে SQL কুয়েরি এক্সিকিউট করা হয় এবং mysqli_fetch_assoc() ফাংশন ব্যবহার করে ফলাফল (results) এক্সট্র্যাক্ট করা হয়।
উদাহরণ: SELECT কুয়েরি এক্সিকিউট করা
<?php
// ডেটাবেস সংযোগ
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database_name";
$conn = mysqli_connect($servername, $username, $password, $dbname);
// সংযোগ পরীক্ষা করা
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// SELECT কুয়েরি
$sql = "SELECT id, name, email FROM users";
$result = mysqli_query($conn, $sql);
// রেজাল্ট চেক করা
if (mysqli_num_rows($result) > 0) {
// রেকর্ডগুলো এক্সট্র্যাক্ট করা
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "No results found";
}
// সংযোগ বন্ধ করা
mysqli_close($conn);
?>
ব্যাখ্যা:
- mysqli_connect(): ডেটাবেসে সংযোগ স্থাপন করা।
- mysqli_query(): SQL কুয়েরি এক্সিকিউট করা।
- mysqli_num_rows(): কুয়েরির রিটার্ন করা রেকর্ডগুলোর সংখ্যা চেক করা।
- mysqli_fetch_assoc(): এক এক করে রেকর্ডগুলো আসবে এবং অ্যাসোসিয়েটিভ অ্যারে আকারে সেগুলো রিটার্ন হবে।
এটি users টেবিলের id, name, এবং email কলাম থেকে ডেটা রিড করে।
২. Object-Oriented স্টাইলের মাধ্যমে ডেটা রিড করা
Object-Oriented স্টাইলের মধ্যে mysqli_query() মেথড এবং fetch_assoc() মেথড ব্যবহার করে ডেটা এক্সট্র্যাক্ট করা হয়।
উদাহরণ: SELECT কুয়েরি এক্সিকিউট করা
<?php
// ডেটাবেস সংযোগ
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
// সংযোগ পরীক্ষা করা
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SELECT কুয়েরি
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
// রেজাল্ট চেক করা
if ($result->num_rows > 0) {
// রেকর্ডগুলো এক্সট্র্যাক্ট করা
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "No results found";
}
// সংযোগ বন্ধ করা
$conn->close();
?>
ব্যাখ্যা:
- new mysqli(): ডেটাবেসে সংযোগ স্থাপন করা।
- $conn->query(): SQL কুয়েরি এক্সিকিউট করা।
- $result->num_rows: কুয়েরির রিটার্ন করা রেকর্ডগুলোর সংখ্যা চেক করা।
- $result->fetch_assoc(): এক এক করে রেকর্ডগুলো আসবে এবং অ্যাসোসিয়েটিভ অ্যারে আকারে সেগুলো রিটার্ন হবে।
এখানে users টেবিলের id, name, এবং email কলাম থেকে ডেটা রিড করা হচ্ছে।
৩. একাধিক টেবিল থেকে ডেটা রিড করা (JOIN)
MySQLi ব্যবহার করে একাধিক টেবিল থেকে ডেটা একত্রিত (JOIN) করা যেতে পারে। এটি একটি সাধারণ SELECT কুয়েরি হতে পারে যেখানে দুইটি বা তার বেশি টেবিলের তথ্য একত্রিত করা হয়।
উদাহরণ: JOIN কুয়েরি
<?php
// ডেটাবেস সংযোগ
$conn = new mysqli($servername, $username, $password, $dbname);
// সংযোগ পরীক্ষা করা
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SELECT কুয়েরি (JOIN ব্যবহার)
$sql = "SELECT users.id, users.name, orders.order_id, orders.total_price
FROM users
INNER JOIN orders ON users.id = orders.user_id";
$result = $conn->query($sql);
// রেজাল্ট চেক করা
if ($result->num_rows > 0) {
// রেকর্ডগুলো এক্সট্র্যাক্ট করা
while($row = $result->fetch_assoc()) {
echo "User ID: " . $row["id"]. " - Name: " . $row["name"]. " - Order ID: " . $row["order_id"]. " - Total Price: " . $row["total_price"]. "<br>";
}
} else {
echo "No results found";
}
// সংযোগ বন্ধ করা
$conn->close();
?>
ব্যাখ্যা:
- এখানে
INNER JOINব্যবহার করা হয়েছে যাusersএবংordersটেবিলকেuser_idদ্বারা যুক্ত করে। usersটেবিলেরidএবংnameকলাম এবংordersটেবিলেরorder_idএবংtotal_priceকলাম থেকে ডেটা রিড করা হচ্ছে।
৪. LIMIT ব্যবহার করা
MySQLi এর মাধ্যমে SELECT কুয়েরি করার সময় LIMIT ব্যবহার করে নির্দিষ্ট সংখ্যক রেকর্ড নিয়ে আসা যায়।
উদাহরণ: LIMIT ব্যবহার করা
<?php
// ডেটাবেস সংযোগ
$conn = new mysqli($servername, $username, $password, $dbname);
// সংযোগ পরীক্ষা করা
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SELECT কুয়েরি (LIMIT ব্যবহার)
$sql = "SELECT id, name, email FROM users LIMIT 5";
$result = $conn->query($sql);
// রেজাল্ট চেক করা
if ($result->num_rows > 0) {
// রেকর্ডগুলো এক্সট্র্যাক্ট করা
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "No results found";
}
// সংযোগ বন্ধ করা
$conn->close();
?>
ব্যাখ্যা:
- এখানে
LIMIT 5ব্যবহার করে প্রথম ৫টি রেকর্ড রিড করা হয়েছে। এটি বিশেষভাবে বড় ডেটাবেসে কাজ করার সময় কার্যকরী হতে পারে।
সারাংশ
MySQLi ব্যবহার করে ডেটাবেস থেকে ডেটা রিড (SELECT কুয়েরি) করা সহজ এবং কার্যকরী। আপনি Procedural বা Object-Oriented স্টাইলে কুয়েরি এক্সিকিউট করতে পারেন। mysqli_query() অথবা $conn->query() ফাংশন ব্যবহার করে কুয়েরি চালানোর পর mysqli_fetch_assoc() অথবা $result->fetch_assoc() ফাংশন ব্যবহার করে রেজাল্ট এক্সট্র্যাক্ট করা হয়। এছাড়া, একাধিক টেবিল থেকে ডেটা একত্রিত করতে JOIN ব্যবহার করা যায়, এবং LIMIT দিয়ে কুয়েরির রেজাল্ট সীমাবদ্ধ করা যায়।
Read more