Database Tutorials mysqli এবং PDO দিয়ে SQL Query Execute করা গাইড ও নোট

362

PHP দিয়ে SQL কুয়েরি এক্সিকিউট (Execute) করার জন্য MySQLi এবং PDO উভয়েই শক্তিশালী পদ্ধতি প্রদান করে। এই দুটি পদ্ধতির সাহায্যে SELECT, INSERT, UPDATE, DELETE সহ যেকোনো SQL কুয়েরি এক্সিকিউট করা যায়। এখানে উভয় পদ্ধতিতে SQL কুয়েরি এক্সিকিউট করার পদ্ধতি আলোচনা করা হবে।


1. MySQLi দিয়ে SQL Query Execute করা

1.1 Procedural মেথডে SQL Query Execute করা

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

// MySQLi সংযোগ স্থাপন
$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 "0 results";
}

// সংযোগ বন্ধ করা
mysqli_close($conn);
?>

এখানে, mysqli_query() ফাংশন ব্যবহার করে SQL কুয়েরি এক্সিকিউট করা হয়েছে এবং mysqli_fetch_assoc() ফাংশন দিয়ে ফলাফল বের করা হয়েছে।

1.2 Object-Oriented মেথডে SQL Query Execute করা

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

// MySQLi সংযোগ স্থাপন
$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 "0 results";
}

// সংযোগ বন্ধ করা
$conn->close();
?>

এখানে, query() মেথড ব্যবহার করে SQL কুয়েরি এক্সিকিউট করা হয়েছে এবং fetch_assoc() মেথড দিয়ে ফলাফল বের করা হয়েছে।


2. PDO দিয়ে SQL Query Execute করা

2.1 PDO দিয়ে SQL Query Execute করা

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

try {
    // PDO সংযোগ তৈরি করা
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // SELECT কুয়েরি তৈরি
    $sql = "SELECT id, name, email FROM users";

    // কুয়েরি এক্সিকিউট করা
    $stmt = $conn->query($sql);

    // কুয়েরি এক্সিকিউট করার পর ফলাফল চেক করা
    if ($stmt->rowCount() > 0) {
        // প্রতিটি রেকর্ড প্রদর্শন
        while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
        }
    } else {
        echo "0 results";
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}

// সংযোগ বন্ধ করা
$conn = null;
?>

এখানে, query() মেথড ব্যবহার করে SQL কুয়েরি এক্সিকিউট করা হয়েছে এবং fetch(PDO::FETCH_ASSOC) দিয়ে ফলাফল বের করা হয়েছে।


3. Prepared Statements ব্যবহার করে SQL Query Execute করা

Prepared Statements SQL ইনজেকশন থেকে সুরক্ষা প্রদান করে এবং ডেটাবেসের কার্যক্ষমতা বৃদ্ধি করে। এটি ডেটাবেসের সাথে কাজ করার সেরা পদ্ধতি হিসেবে বিবেচিত।

3.1 MySQLi দিয়ে Prepared Statement ব্যবহার করে SQL Query Execute করা

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

// MySQLi সংযোগ স্থাপন
$conn = mysqli_connect($servername, $username, $password, $dbname);

// সংযোগ চেক করা
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// প্রস্তুত বিবৃতি তৈরি করা
$stmt = $conn->prepare("SELECT id, name, email FROM users WHERE email = ?");
$stmt->bind_param("s", $email);

// মান সেট করা
$email = "john@example.com";

// কুয়েরি এক্সিকিউট করা
$stmt->execute();

// ফলাফল বের করা
$result = $stmt->get_result();
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

// প্রস্তুত বিবৃতি বন্ধ করা এবং সংযোগ বন্ধ করা
$stmt->close();
$conn->close();
?>

এখানে, prepare() মেথড দিয়ে SQL কুয়েরি প্রস্তুত করা হয়েছে এবং bind_param() দিয়ে মান বাইন্ড করা হয়েছে।

3.2 PDO দিয়ে Prepared Statement ব্যবহার করে SQL Query Execute করা

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

try {
    // PDO সংযোগ তৈরি করা
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // প্রস্তুত কুয়েরি তৈরি করা
    $stmt = $conn->prepare("SELECT id, name, email FROM users WHERE email = :email");

    // মান বাইন্ড করা
    $stmt->bindParam(':email', $email);

    // মান সেট করা
    $email = "john@example.com";

    // কুয়েরি এক্সিকিউট করা
    $stmt->execute();

    // ফলাফল বের করা
    if ($stmt->rowCount() > 0) {
        while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
        }
    } else {
        echo "0 results";
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}

// সংযোগ বন্ধ করা
$conn = null;
?>

এখানে, prepare() মেথড দিয়ে SQL কুয়েরি প্রস্তুত করা হয়েছে এবং bindParam() দিয়ে মান বাইন্ড করা হয়েছে।


উপসংহার

MySQLi এবং PDO উভয় পদ্ধতিই PHP ডেভেলপমেন্টে SQL কুয়েরি এক্সিকিউট করার জন্য শক্তিশালী এবং জনপ্রিয় পদ্ধতি। mysqli_query() এবং query() মেথডের মাধ্যমে আপনি সহজে SQL কুয়েরি এক্সিকিউট করতে পারেন। তবে, Prepared Statements ব্যবহারের মাধ্যমে SQL ইনজেকশন থেকে সুরক্ষা নিশ্চিত করা সম্ভব, এবং এটি প্রোডাকশনে আরও নিরাপদ এবং কার্যকরী।

Content added By
Promotion

Are you sure to start over?

Loading...