Data Insertion, Retrieval, Update এবং Delete (CRUD)

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter Database Interaction |

CRUD (Create, Read, Update, Delete) হলো ডাটাবেস পরিচালনার চারটি মৌলিক কাজ। CodeIgniter এর Model এবং Query Builder ক্লাস ব্যবহার করে সহজেই CRUD অপারেশন সম্পন্ন করা যায়।


প্রয়োজনীয় প্রস্তুতি

১. ডাটাবেস টেবিল তৈরি

ডাটাবেসে একটি টেবিল তৈরি করুন। উদাহরণস্বরূপ, products নামে একটি টেবিল তৈরি করা হলো:

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    description TEXT,
    price DECIMAL(10, 2) NOT NULL
);

২. Model তৈরি

app/Models/ProductModel.php ফাইলে একটি Model তৈরি করুন:

namespace App\Models;

use CodeIgniter\Model;

class ProductModel extends Model
{
    protected $table = 'products';
    protected $primaryKey = 'id';
    protected $allowedFields = ['name', 'description', 'price'];
}

Data Insertion (Create)

Controller এ ডেটা ইনসার্ট

Controller থেকে ডেটা ইনসার্ট করতে Model এর save() মেথড ব্যবহার করুন:

namespace App\Controllers;

use App\Models\ProductModel;

class ProductController extends BaseController
{
    public function create()
    {
        $model = new ProductModel();

        $data = [
            'name' => 'Laptop',
            'description' => 'High-performance laptop',
            'price' => 1200.50
        ];

        $model->save($data);

        return "Data inserted successfully!";
    }
}

ফর্ম থেকে ডেটা ইনসার্ট

ফর্ম ডেটা গ্রহণ করে ইনসার্ট করতে:

public function create()
{
    $model = new ProductModel();

    $data = [
        'name' => $this->request->getPost('name'),
        'description' => $this->request->getPost('description'),
        'price' => $this->request->getPost('price')
    ];

    $model->save($data);

    return redirect()->to('/products');
}

Data Retrieval (Read)

সমস্ত ডেটা রিট্রিভ

Model এর findAll() মেথড ব্যবহার করে সমস্ত ডেটা রিট্রিভ করুন:

public function index()
{
    $model = new ProductModel();
    $data['products'] = $model->findAll();

    return view('product_list', $data);
}

নির্দিষ্ট ডেটা রিট্রিভ

find($id) মেথড ব্যবহার করে নির্দিষ্ট একটি রেকর্ড রিট্রিভ করা যায়:

public function show($id)
{
    $model = new ProductModel();
    $data['product'] = $model->find($id);

    return view('product_details', $data);
}

Data Update (Update)

Controller থেকে ডেটা আপডেট

Model এর update() মেথড ব্যবহার করে ডেটা আপডেট করুন:

public function update($id)
{
    $model = new ProductModel();

    $data = [
        'name' => 'Updated Laptop',
        'description' => 'Updated description',
        'price' => 1300.00
    ];

    $model->update($id, $data);

    return "Data updated successfully!";
}

ফর্ম থেকে ডেটা আপডেট

ফর্ম ডেটা গ্রহণ করে আপডেট করতে:

public function update($id)
{
    $model = new ProductModel();

    $data = [
        'name' => $this->request->getPost('name'),
        'description' => $this->request->getPost('description'),
        'price' => $this->request->getPost('price')
    ];

    $model->update($id, $data);

    return redirect()->to('/products');
}

Data Deletion (Delete)

Controller থেকে ডেটা ডিলিট

Model এর delete() মেথড ব্যবহার করে ডেটা ডিলিট করুন:

public function delete($id)
{
    $model = new ProductModel();
    $model->delete($id);

    return "Data deleted successfully!";
}

সমস্ত ডেটা ডিলিট

সমস্ত ডেটা ডিলিট করতে:

public function deleteAll()
{
    $model = new ProductModel();
    $model->truncate();

    return "All data deleted!";
}

উদাহরণ: CRUD এর জন্য View ফাইল

product_list.php (ডেটা প্রদর্শন)

<h1>Product List</h1>
<ul>
    <?php foreach ($products as $product): ?>
        <li>
            <?= $product['name']; ?> - $<?= $product['price']; ?>
            <a href="/product/edit/<?= $product['id']; ?>">Edit</a>
            <a href="/product/delete/<?= $product['id']; ?>">Delete</a>
        </li>
    <?php endforeach; ?>
</ul>

product_form.php (ডেটা ইনসার্ট/আপডেট)

<form action="/product/save" method="post">
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" value="<?= old('name', $product['name'] ?? ''); ?>">

    <label for="description">Description:</label>
    <textarea id="description" name="description"><?= old('description', $product['description'] ?? ''); ?></textarea>

    <label for="price">Price:</label>
    <input type="text" id="price" name="price" value="<?= old('price', $product['price'] ?? ''); ?>">

    <button type="submit">Save</button>
</form>

CRUD এর সুবিধা

  1. ডেটা পরিচালনা সহজ: Model এবং Query Builder ব্যবহার করে ডেটা পরিচালনা সহজ হয়।
  2. কোড পুনরায় ব্যবহারযোগ্যতা: একবার Model তৈরি করলে CRUD অপারেশন সহজে করা যায়।
  3. ক্লিন এবং মডুলার কোড: Controller, Model এবং View আলাদা রাখার ফলে কোড সুসংগঠিত থাকে।

CodeIgniter এর CRUD অপারেশন ডাটাবেস পরিচালনা দ্রুত এবং কার্যকরী করে। উপরের পদ্ধতি অনুসরণ করে সহজেই আপনার অ্যাপ্লিকেশনে ডেটা ইনসার্ট, রিট্রিভ, আপডেট এবং ডিলিট করতে পারবেন।

Content added By
Promotion