MySQLi Procedural API হল পিএইচপিতে MySQL ডেটাবেসের সাথে যোগাযোগ করার জন্য ব্যবহৃত একটি পদ্ধতিগত স্টাইল। এটি MySQLi এক্সটেনশনের মাধ্যমে ডেটাবেস সংযোগ স্থাপন, কোয়েরি এক্সিকিউট করা, ডেটা রিট্রিভ করা, এবং অন্যান্য ডেটাবেস অপারেশন সম্পাদন করার জন্য ব্যবহৃত হয়। Procedural স্টাইলের সাহায্যে, আপনি সরাসরি ফাংশন কল করে ডেটাবেসের সাথে কাজ করতে পারেন, কোনও অবজেক্ট তৈরি না করেই।
এই গাইডে, আমরা MySQLi Procedural API এর কিছু গুরুত্বপূর্ণ ফাংশন এবং তাদের ব্যবহার দেখব।
1. MySQLi Procedural API এর সাথে সংযোগ তৈরি
MySQLi Procedural API ব্যবহার করে ডেটাবেস সংযোগ তৈরি করতে mysqli_connect() ফাংশন ব্যবহার করা হয়। এটি ডেটাবেসের হোস্টনেম, ইউজারনেম, পাসওয়ার্ড এবং ডেটাবেসের নাম গ্রহণ করে।
উদাহরণ:
<?php
// MySQLi Procedural API দিয়ে সংযোগ তৈরি
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// সংযোগ তৈরি
$conn = mysqli_connect($servername, $username, $password, $dbname);
// সংযোগ চেক করা
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
এখানে:
- mysqli_connect() ফাংশনটি ডেটাবেসের সাথে সংযোগ তৈরি করে।
- যদি সংযোগ ব্যর্থ হয়, তাহলে
mysqli_connect_error()ফাংশনটি ব্যবহার করে ত্রুটি বার্তা দেখানো হয়।
2. MySQLi Procedural API দিয়ে SQL কোয়েরি এক্সিকিউট করা
MySQLi Procedural API ব্যবহার করে SQL কোয়েরি এক্সিকিউট করার জন্য mysqli_query() ফাংশন ব্যবহার করা হয়। এই ফাংশনটি সাধারণত SELECT, INSERT, UPDATE এবং DELETE স্টেটমেন্টের জন্য ব্যবহৃত হয়।
উদাহরণ:
<?php
// MySQLi Procedural API দিয়ে সংযোগ তৈরি
$conn = mysqli_connect("localhost", "root", "", "test_db");
// 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 "0 results";
}
// সংযোগ বন্ধ করা
mysqli_close($conn);
?>
এখানে:
- mysqli_query() ফাংশনটি SQL কোয়েরি এক্সিকিউট করে এবং রেজাল্ট রিটার্ন করে।
- mysqli_num_rows() ফাংশনটি রিটার্ন হওয়া রেকর্ডের সংখ্যা চেক করে।
- mysqli_fetch_assoc() ফাংশনটি রিটার্ন হওয়া রেজাল্টকে অ্যাসোসিয়েটিভ অ্যারে হিসেবে ফেরত দেয়।
3. MySQLi Procedural API দিয়ে INSERT, UPDATE, DELETE অপারেশন
INSERT, UPDATE, DELETE কোয়েরি এক্সিকিউট করার জন্যও mysqli_query() ফাংশন ব্যবহার করা হয়, তবে এগুলি সাধারণত ডেটা পরিবর্তন বা আপডেট করার জন্য ব্যবহৃত হয়।
উদাহরণ: INSERT Operation
<?php
// MySQLi Procedural API দিয়ে সংযোগ তৈরি
$conn = mysqli_connect("localhost", "root", "", "test_db");
// INSERT কোয়েরি এক্সিকিউট করা
$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
// সংযোগ বন্ধ করা
mysqli_close($conn);
?>
এখানে:
- mysqli_query() ফাংশনটি SQL কোয়েরি এক্সিকিউট করে এবং সফল হলে একটি অ্যাকনলেজমেন্ট বার্তা দেখায়।
- mysqli_error() ফাংশনটি যদি কোনো ত্রুটি ঘটে, তবে ত্রুটির বার্তা প্রদর্শন করে।
উদাহরণ: UPDATE Operation
<?php
// MySQLi Procedural API দিয়ে সংযোগ তৈরি
$conn = mysqli_connect("localhost", "root", "", "test_db");
// UPDATE কোয়েরি এক্সিকিউট করা
$sql = "UPDATE users SET email='john.doe@example.com' WHERE name='John Doe'";
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
// সংযোগ বন্ধ করা
mysqli_close($conn);
?>
উদাহরণ: DELETE Operation
<?php
// MySQLi Procedural API দিয়ে সংযোগ তৈরি
$conn = mysqli_connect("localhost", "root", "", "test_db");
// DELETE কোয়েরি এক্সিকিউট করা
$sql = "DELETE FROM users WHERE name='John Doe'";
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
// সংযোগ বন্ধ করা
mysqli_close($conn);
?>
4. MySQLi Procedural API দিয়ে Prepared Statements ব্যবহার করা
MySQLi Prepared Statements ব্যবহার করে SQL ইনজেকশন থেকে সুরক্ষা প্রদান করে। এটি SQL কোড এবং ডেটাকে আলাদা করে দেয়, ফলে নিরাপত্তা বাড়ে এবং কোডের কার্যক্ষমতা বাড়ে।
উদাহরণ:
<?php
// MySQLi Procedural API দিয়ে সংযোগ তৈরি
$conn = mysqli_connect("localhost", "root", "", "test_db");
// Prepared Statement তৈরি করা
$stmt = mysqli_prepare($conn, "INSERT INTO users (name, email) VALUES (?, ?)");
// ইউজার ইনপুটের জন্য ভ্যালু বाइন্ড করা
$name = "Jane Doe";
$email = "jane.doe@example.com";
mysqli_stmt_bind_param($stmt, "ss", $name, $email);
// স্টেটমেন্ট এক্সিকিউট করা
mysqli_stmt_execute($stmt);
echo "New record created successfully";
// স্টেটমেন্ট বন্ধ করা
mysqli_stmt_close($stmt);
// সংযোগ বন্ধ করা
mysqli_close($conn);
?>
এখানে:
- mysqli_prepare() ফাংশনটি SQL স্টেটমেন্ট প্রস্তুত করে।
- mysqli_stmt_bind_param() ফাংশনটি প্যারামিটার বাইন্ড করে।
- mysqli_stmt_execute() ফাংশনটি প্রস্তুতকৃত স্টেটমেন্ট এক্সিকিউট করে।
5. MySQLi Procedural API দিয়ে Error Handling
MySQLi তে ত্রুটি সনাক্তকরণের জন্য mysqli_error() এবং mysqli_errno() ফাংশন ব্যবহার করা হয়।
উদাহরণ:
<?php
// MySQLi Procedural API দিয়ে সংযোগ তৈরি
$conn = mysqli_connect("localhost", "root", "", "test_db");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// ভুল কোয়েরি (ত্রুটি তৈরি)
$sql = "SELEC * FROM users"; // ভুল সিলেক্ট স্টেটমেন্ট
if (!mysqli_query($conn, $sql)) {
echo "Error: " . mysqli_error($conn);
}
// সংযোগ বন্ধ করা
mysqli_close($conn);
?>
এখানে:
- mysqli_error() ফাংশনটি ত্রুটির বার্তা প্রদান করে।
- mysqli_errno() ফাংশনটি ত্রুটির কোড প্রদান করে।
MySQLi Procedural API হল MySQL ডেটাবেসের সাথে কাজ করার একটি সহজ এবং সরল পদ্ধতি। এতে আপনি সরাসরি ফাংশন ব্যবহার করে ডেটাবেসের সাথে যোগাযোগ করতে পারেন। আপনি MySQLi Procedural API ব্যবহার করে সহজে সংযোগ তৈরি, ডেটা ইনসার্ট, রিট্রিভ, আপডেট, ডিলিট এবং নিরাপদ কোডিং (Prepared Statements) করতে পারবেন। এটি ডেভেলপারদের জন্য একটি শক্তিশালী এবং কার্যকরী টুল।