REST API এর সাথে MySQLi ব্যবহার

MySQLi এবং API Integration - মাইএসকিউএল আই (MySQLi) - Database Tutorials

295

REST API (Representational State Transfer) একটি আর্কিটেকচারাল স্টাইল যা ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা বিনিময়ের জন্য HTTP প্রোটোকল ব্যবহার করে। MySQLi (MySQL Improved Extension) ব্যবহার করে REST API তৈরি করা হলে, আপনি MySQL ডেটাবেস থেকে ডেটা রিট্রিভ, আপডেট, ইনসার্ট বা ডিলিট করতে পারেন। এটি ওয়েব অ্যাপ্লিকেশন এবং মোবাইল অ্যাপ্লিকেশনের মধ্যে ডেটা সঞ্চালন সহজ করে তোলে।


REST API কী?

REST API একটি স্ট্যান্ডার্ড মেথড যা বিভিন্ন ধরনের ক্লায়েন্ট অ্যাপ্লিকেশন (যেমন ওয়েব, মোবাইল) এর মাধ্যমে ডেটাবেস বা সার্ভিসের সাথে যোগাযোগ করতে সাহায্য করে। এটি HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে ডেটা ট্রান্সফার করে।


MySQLi দিয়ে REST API তৈরি

MySQLi ব্যবহার করে REST API তৈরি করার জন্য, আপনাকে প্রথমে HTTP রিকোয়েস্ট গ্রহণ করতে হবে এবং তারপর MySQL ডেটাবেসের সাথে যোগাযোগ করতে হবে। এখানে একটি সাধারণ উদাহরণ দেওয়া হল, যেখানে GET, POST, PUT, এবং DELETE মেথড ব্যবহার করে MySQL ডেটাবেসের ডেটা পরিচালনা করা হচ্ছে।


GET মেথড: ডেটা রিট্রিভ করা

<?php
// হেডার সেট করা
header('Content-Type: application/json');

// MySQLi সংযোগ স্থাপন
$conn = new mysqli("localhost", "username", "password", "database");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// GET রিকোয়েস্ট থেকে ইউজার আইডি নেওয়া
$id = isset($_GET['id']) ? $_GET['id'] : null;

// কুয়েরি তৈরি
$query = "SELECT * FROM users";
if ($id) {
    $query .= " WHERE id = $id";
}

$result = $conn->query($query);

if ($result->num_rows > 0) {
    $users = array();
    while($row = $result->fetch_assoc()) {
        $users[] = $row;
    }
    echo json_encode($users);
} else {
    echo json_encode(["message" => "No users found"]);
}

$conn->close();
?>

এখানে GET রিকোয়েস্টের মাধ্যমে ইউজার ডেটা রিট্রিভ করা হয়েছে।


POST মেথড: নতুন ডেটা ইনসার্ট করা

<?php
// হেডার সেট করা
header('Content-Type: application/json');

// MySQLi সংযোগ স্থাপন
$conn = new mysqli("localhost", "username", "password", "database");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// POST রিকোয়েস্ট থেকে ডেটা নেওয়া
$data = json_decode(file_get_contents("php://input"), true);

// ইনপুট ভ্যালু যাচাই
if (isset($data['name']) && isset($data['email']) && isset($data['age'])) {
    $name = $data['name'];
    $email = $data['email'];
    $age = $data['age'];

    // প্যারামিটারাইজড কুয়েরি তৈরি
    $stmt = $conn->prepare("INSERT INTO users (name, email, age) VALUES (?, ?, ?)");
    $stmt->bind_param("ssi", $name, $email, $age);

    // কুয়েরি এক্সিকিউট
    if ($stmt->execute()) {
        echo json_encode(["message" => "User added successfully"]);
    } else {
        echo json_encode(["message" => "Failed to add user"]);
    }

    $stmt->close();
} else {
    echo json_encode(["message" => "Invalid input"]);
}

$conn->close();
?>

এখানে POST রিকোয়েস্টের মাধ্যমে নতুন ইউজার ডেটা ডেটাবেসে ইনসার্ট করা হয়েছে।


PUT মেথড: ডেটা আপডেট করা

<?php
// হেডার সেট করা
header('Content-Type: application/json');

// MySQLi সংযোগ স্থাপন
$conn = new mysqli("localhost", "username", "password", "database");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// PUT রিকোয়েস্ট থেকে ডেটা নেওয়া
$data = json_decode(file_get_contents("php://input"), true);

// ইনপুট ভ্যালু যাচাই
if (isset($data['id']) && isset($data['name']) && isset($data['email']) && isset($data['age'])) {
    $id = $data['id'];
    $name = $data['name'];
    $email = $data['email'];
    $age = $data['age'];

    // প্যারামিটারাইজড কুয়েরি তৈরি
    $stmt = $conn->prepare("UPDATE users SET name = ?, email = ?, age = ? WHERE id = ?");
    $stmt->bind_param("ssii", $name, $email, $age, $id);

    // কুয়েরি এক্সিকিউট
    if ($stmt->execute()) {
        echo json_encode(["message" => "User updated successfully"]);
    } else {
        echo json_encode(["message" => "Failed to update user"]);
    }

    $stmt->close();
} else {
    echo json_encode(["message" => "Invalid input"]);
}

$conn->close();
?>

এখানে PUT রিকোয়েস্টের মাধ্যমে ইউজার ডেটা আপডেট করা হয়েছে।


DELETE মেথড: ডেটা ডিলিট করা

<?php
// হেডার সেট করা
header('Content-Type: application/json');

// MySQLi সংযোগ স্থাপন
$conn = new mysqli("localhost", "username", "password", "database");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// DELETE রিকোয়েস্ট থেকে ইউজার আইডি নেওয়া
$data = json_decode(file_get_contents("php://input"), true);
$id = isset($data['id']) ? $data['id'] : null;

if ($id) {
    // কুয়েরি তৈরি
    $stmt = $conn->prepare("DELETE FROM users WHERE id = ?");
    $stmt->bind_param("i", $id);

    // কুয়েরি এক্সিকিউট
    if ($stmt->execute()) {
        echo json_encode(["message" => "User deleted successfully"]);
    } else {
        echo json_encode(["message" => "Failed to delete user"]);
    }

    $stmt->close();
} else {
    echo json_encode(["message" => "Invalid input"]);
}

$conn->close();
?>

এখানে DELETE রিকোয়েস্টের মাধ্যমে ইউজার ডেটা ডিলিট করা হয়েছে।


MySQLi এবং REST API এর উপকারিতা

  1. নিরাপত্তা: প্যারামিটারাইজড কুয়েরি ব্যবহার করার ফলে SQL Injection আক্রমণ থেকে রক্ষা পাওয়া যায়।
  2. স্ট্যান্ডার্ডাইজড: REST API একটি স্ট্যান্ডার্ড প্রোটোকল, যা বিভিন্ন ক্লায়েন্ট অ্যাপ্লিকেশন (যেমন ওয়েব, মোবাইল) থেকে সহজে ব্যবহার করা যায়।
  3. স্কেলেবিলিটি: REST API এবং MySQLi ব্যবহার করে অ্যাপ্লিকেশনগুলো দ্রুত স্কেল করা সম্ভব, কারণ API রিকোয়েস্ট/রেসপন্স দ্রুত এবং সিস্টেমের লোড কমাতে সাহায্য করে।

MySQLi এবং REST API একসাথে ব্যবহার করে ডেটাবেসের সাথে নিরাপদ, দ্রুত এবং কার্যকরী উপায়ে যোগাযোগ করা সম্ভব। এটি ওয়েব অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশনগুলোর জন্য একটি শক্তিশালী ডেটা ইন্টারফেস তৈরি করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...