MySQLi এক্সটেনশন ব্যবহার করে PHP এর মাধ্যমে MySQL ডেটাবেজে ডেটা ইনসার্ট করা খুবই সহজ। এই টিউটোরিয়ালে আমরা দেখব কিভাবে MySQLi ব্যবহার করে ডেটাবেজে নতুন রেকর্ড ইনসার্ট করা যায়। আমরা দুইটি পদ্ধতিতে এই কাজটি করতে পারি: প্রোসিজারাল পদ্ধতি এবং অবজেক্ট-ওরিয়েন্টেড পদ্ধতি।
১. MySQLi প্রোসিজারাল পদ্ধতিতে ডেটা ইনসার্ট করা
প্রোসিজারাল পদ্ধতিতে ডেটাবেজে ডেটা ইনসার্ট করতে mysqli_query() ফাংশন ব্যবহার করা হয়।
ডেটা ইনসার্ট (INSERT) কোড উদাহরণ
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database";
// MySQLi সংযোগ স্থাপন
$conn = mysqli_connect($servername, $username, $password, $dbname);
// সংযোগ চেক করা
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// ডেটা ইনসার্টের জন্য SQL কোয়েরি তৈরি করা
$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com')";
// কোয়েরি রান করা
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
// সংযোগ বন্ধ করা
mysqli_close($conn);
?>
এখানে:
mysqli_connect(): ডেটাবেজের সাথে সংযোগ স্থাপন করে।mysqli_query(): SQL কোয়েরি চালানোর জন্য ব্যবহার করা হয়।mysqli_error(): যদি কোনো ত্রুটি ঘটে, তা দেখানোর জন্য ব্যবহৃত হয়।mysqli_close(): সংযোগ বন্ধ করতে ব্যবহৃত হয়।
২. MySQLi অবজেক্ট-ওরিয়েন্টেড পদ্ধতিতে ডেটা ইনসার্ট করা
অবজেক্ট-ওরিয়েন্টেড পদ্ধতিতে ডেটাবেজে ডেটা ইনসার্ট করতে mysqli::query() মেথড ব্যবহার করা হয়।
ডেটা ইনসার্ট (INSERT) কোড উদাহরণ
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database";
// MySQLi অবজেক্ট তৈরি
$conn = new mysqli($servername, $username, $password, $dbname);
// সংযোগ চেক করা
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// ডেটা ইনসার্টের জন্য SQL কোয়েরি তৈরি করা
$sql = "INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane.doe@example.com')";
// কোয়েরি রান করা
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
// সংযোগ বন্ধ করা
$conn->close();
?>
এখানে:
new mysqli(): MySQLi অবজেক্ট তৈরি করে।$conn->query(): SQL কোয়েরি চালানোর জন্য ব্যবহৃত মেথড।$conn->error: ত্রুটির বার্তা দেখানোর জন্য ব্যবহৃত হয়।$conn->close(): সংযোগ বন্ধ করার জন্য ব্যবহৃত হয়।
৩. Prepared Statements ব্যবহার করে ডেটা ইনসার্ট
MySQLi এর Prepared Statements ব্যবহার করলে SQL Injection আক্রমণ থেকে সুরক্ষা পাওয়া যায়। এটি ডেটার ইনপুট সঠিকভাবে হ্যান্ডেল করার জন্য উপকারী।
Prepared Statements উদাহরণ (INSERT)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database";
// MySQLi অবজেক্ট তৈরি
$conn = new mysqli($servername, $username, $password, $dbname);
// সংযোগ চেক করা
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SQL Prepared Statement তৈরি করা
$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
// ইনপুট ডেটা সেট করা
$name = "Alice Smith";
$email = "alice.smith@example.com";
// কোয়েরি রান করা
$stmt->execute();
echo "New record created successfully";
// স্টেটমেন্ট বন্ধ করা
$stmt->close();
// সংযোগ বন্ধ করা
$conn->close();
?>
এখানে:
prepare(): SQL স্টেটমেন্ট প্রস্তুত করে।bind_param(): প্যারামিটারগুলো স্টেটমেন্টের সাথে বাইন্ড করে।execute(): কোয়েরি রান করে।
Prepared Statements ব্যবহারের মাধ্যমে ডেটাবেজে ইনপুট ডেটা নিরাপদভাবে ইনসার্ট করা হয়, কারণ এটি ডেটা ভ্যালিডেশন ও সঠিকভাবে হ্যান্ডেল করা নিশ্চিত করে।
৪. একাধিক রেকর্ড ইনসার্ট করা
একাধিক রেকর্ড ইনসার্ট করতে INSERT INTO স্টেটমেন্টে একাধিক ভ্যালু প্রদান করা যেতে পারে।
একাধিক রেকর্ড ইনসার্ট (INSERT)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database";
// MySQLi সংযোগ স্থাপন
$conn = mysqli_connect($servername, $username, $password, $dbname);
// সংযোগ চেক করা
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// একাধিক রেকর্ড ইনসার্টের জন্য SQL কোয়েরি তৈরি করা
$sql = "INSERT INTO users (name, email) VALUES
('Alice Brown', 'alice.brown@example.com'),
('Bob White', 'bob.white@example.com'),
('Charlie Green', 'charlie.green@example.com')";
// কোয়েরি রান করা
if (mysqli_query($conn, $sql)) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
// সংযোগ বন্ধ করা
mysqli_close($conn);
?>
এখানে:
- একাধিক রেকর্ড ইনসার্ট করতে
VALUESঅংশে একাধিক ভ্যালু কমা দিয়ে আলাদা করা হয়।
সারাংশ
MySQLi এক্সটেনশন ব্যবহার করে PHP এর মাধ্যমে MySQL ডেটাবেজে ডেটা ইনসার্ট করা অনেক সহজ এবং নিরাপদ। আপনি প্রোসিজারাল বা অবজেক্ট-ওরিয়েন্টেড পদ্ধতিতে এই কাজটি করতে পারেন। Prepared Statements ব্যবহার করলে SQL Injection আক্রমণ থেকে ডেটাবেজ নিরাপদ থাকে। একাধিক রেকর্ড ইনসার্ট করতে একটি SQL কোয়েরিতে একাধিক ভ্যালু ব্যবহার করা যায়, যা ইনসার্ট অপারেশনকে আরও কার্যকরী করে।
Read more