BLOB (Binary Large Object) এবং CLOB Data Types গাইড ও নোট

Database Tutorials - পিএইচপি মাইএসকিউএল আই (PHP MySQL) - File এবং Image Management
424

MySQL ডেটাবেসে বিভিন্ন ধরনের ডেটা স্টোর করার জন্য বিশেষ ডেটাটাইপ ব্যবহার করা হয়, যার মধ্যে BLOB (Binary Large Object) এবং CLOB (Character Large Object) উল্লেখযোগ্য। এই ডেটাটাইপগুলো মূলত বড় আকারের বাইনারি ডেটা এবং টেক্সট ডেটা সংরক্ষণ করার জন্য ব্যবহৃত হয়। PHP এবং MySQL এর মাধ্যমে এই ডেটাটাইপগুলোর সাথে কাজ করা সম্ভব, যার মাধ্যমে আপনি বড় আকারের ডেটা যেমন ইমেজ, ভিডিও, ডকুমেন্ট এবং লম্বা টেক্সট ফাইল সংরক্ষণ ও পরিচালনা করতে পারেন।


BLOB (Binary Large Object) ডেটাটাইপ

BLOB হলো একটি ডেটাটাইপ যা মূলত বাইনারি ডেটা (যেমন ইমেজ, অডিও, ভিডিও, ডকুমেন্ট) সংরক্ষণ করার জন্য ব্যবহৃত হয়। এটি 4 ধরনের হতে পারে:

  • TINYBLOB: ছোট আকারের বাইনারি ডেটা (যেমন 255 বাইট পর্যন্ত)
  • BLOB: মাঝারি আকারের বাইনারি ডেটা (যেমন 65,535 বাইট পর্যন্ত)
  • MEDIUMBLOB: বড় আকারের বাইনারি ডেটা (যেমন 16 MB পর্যন্ত)
  • LONGBLOB: সবচেয়ে বড় আকারের বাইনারি ডেটা (যেমন 4 GB পর্যন্ত)

PHP-তে BLOB ডেটা Insert এবং Fetch করা

BLOB ডেটা MySQL-এ ইনসার্ট এবং ফেচ করার জন্য mysqli বা PDO ব্যবহার করা যায়। নিচে একটি উদাহরণ দেওয়া হল, যেখানে একটি ইমেজ ফাইল MySQL ডেটাবেসে ইনসার্ট করা হয়েছে এবং পরে সেই ইমেজটি ফেচ করা হয়েছে।

BLOB Insert Example (PHP)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// ডেটাবেস কানেকশন
$conn = new mysqli($servername, $username, $password, $dbname);

// কানেকশন চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// ইমেজ ফাইল নির্বাচন করা
$image = addslashes(file_get_contents('path_to_image.jpg'));

// SQL স্টেটমেন্ট প্রস্তুত করা
$sql = "INSERT INTO images (image_data) VALUES ('$image')";

if ($conn->query($sql) === TRUE) {
    echo "Image uploaded successfully!";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

BLOB Fetch Example (PHP)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// ডেটাবেস কানেকশন
$conn = new mysqli($servername, $username, $password, $dbname);

// কানেকশন চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// SQL স্টেটমেন্ট
$sql = "SELECT image_data FROM images WHERE id = 1";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    $image_data = $row['image_data'];

    // ইমেজ দেখানো
    header("Content-type: image/jpeg");
    echo $image_data;
} else {
    echo "No image found!";
}

$conn->close();
?>

এখানে, প্রথমে file_get_contents() ফাংশন ব্যবহার করে একটি ইমেজ ফাইলকে BLOB হিসেবে ডেটাবেসে ইনসার্ট করা হয়েছে। পরে header() ফাংশন ব্যবহার করে ফেচ করা ইমেজটি ওয়েব পেজে প্রদর্শন করা হয়েছে।


CLOB (Character Large Object) ডেটাটাইপ

CLOB হলো একটি ডেটাটাইপ যা বড় আকারের টেক্সট ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। এটি টেক্সট ডেটার বিভিন্ন বড় আকারের সন্নিবেশের জন্য উপযুক্ত। CLOB-কে বেশ কয়েকটি সাইজে ভাগ করা যায়:

  • TINYTEXT: ছোট আকারের টেক্সট (255 ক্যারেক্টার পর্যন্ত)
  • TEXT: মাঝারি আকারের টেক্সট (65,535 ক্যারেক্টার পর্যন্ত)
  • MEDIUMTEXT: বড় আকারের টেক্সট (16 MB পর্যন্ত)
  • LONGTEXT: সবচেয়ে বড় আকারের টেক্সট (4 GB পর্যন্ত)

CLOB ডেটাটাইপ সাধারণত ব্লগ পোস্ট, বড় আকারের মন্তব্য, বা ডকুমেন্ট ডেটা সংরক্ষণে ব্যবহৃত হয়।

CLOB Insert Example (PHP)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// ডেটাবেস কানেকশন
$conn = new mysqli($servername, $username, $password, $dbname);

// কানেকশন চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// বড় টেক্সট তৈরি করা
$long_text = "This is a large text that will be inserted into the database...";  // ডেটা

// SQL স্টেটমেন্ট
$sql = "INSERT INTO text_data (text_content) VALUES ('$long_text')";

if ($conn->query($sql) === TRUE) {
    echo "Text inserted successfully!";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

CLOB Fetch Example (PHP)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// ডেটাবেস কানেকশন
$conn = new mysqli($servername, $username, $password, $dbname);

// কানেকশন চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// SQL স্টেটমেন্ট
$sql = "SELECT text_content FROM text_data WHERE id = 1";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    echo $row['text_content'];
} else {
    echo "No text found!";
}

$conn->close();
?>

এখানে, একটি বড় টেক্সট ডেটা text_content কলামে ইনসার্ট করা হয়েছে এবং পরে সেটি ফেচ করে ওয়েব পেজে প্রদর্শন করা হয়েছে।


BLOB এবং CLOB এর মধ্যে পার্থক্য

  • BLOB (Binary Large Object): বাইনারি ডেটা (যেমন, ইমেজ, অডিও, ভিডিও) সংরক্ষণের জন্য ব্যবহৃত হয়।
  • CLOB (Character Large Object): বড় আকারের টেক্সট ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।

যেহেতু BLOB মূলত বাইনারি ডেটা ধারণ করে এবং CLOB টেক্সট ডেটা ধারণ করে, তাই তাদের ব্যবহারের ক্ষেত্রে ডেটার ধরন অনুসারে পার্থক্য দেখা যায়।


BLOB এবং CLOB ডেটাটাইপ ব্যবহার করে আপনি বড় আকারের ডেটা (বাইনারি বা টেক্সট) MySQL ডেটাবেসে স্টোর এবং ম্যানেজ করতে পারবেন। PHP এর মাধ্যমে এই ডেটাটাইপগুলোর সাথে কাজ করা অত্যন্ত কার্যকর এবং সহজ।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...