PHP Professional এবং Zend Certified PHP Engineer (ZCPE ) Course এ সীমিত সংখ্যক আসন বাকি আছে। আগ্রহীদেরকে অতিসত্বর মাসুদ আলম স্যার এর সাথে যোগাযোগ করার জন্য অনুরোধ করা যাচ্ছে। স্যার এর মোবাইল নম্বর : ০১৭২২ ৮১ ৭৫ ৯১

বাংলায় PHP LARAVEL FRAMEWORK পর্ব-১৪:Insert, Update and Delete with Laravel Query Builder

Insert, Update and Delete with Laravel Query Builder

Insert, Update and Delete with Laravel Query Builder

Laravel ১৪ তম পর্বে আপনাকে স্বাগতম। এই পর্বটি বুঝতে হলে আপনাকে অবশ্যই আমাদের এর আগের পর্ব অর্থাৎ ১০ তম পর্বটি পড়ে আসতে হবে। বিশেষ ভাবে Query Builder নিয়ে কাজ করার পূর্ব প্রস্তুতি এই পার্ট টুকু দেখে নিতে হবে। আজকের পর্বে আমরা Laravel Framework এ Insert, Update and Delete এই বিষয় গুলো দেখব।

Inserts

Database এর এক বা একাধিক table এ Data Insert করার জন্য আপনি Laravel Framework এর Query Builder এ Insert Method ব্যবহার করতে পারেন। Insert Method এ আপনি সরাসরি associative array পাঠিয়ে column এবং value হিসেবে Data Insert করতে পারেন। অর্থাৎ আপনি যদি একটা associative array পাঠান , সেক্ষেত্রে আপনার array এর string key টা আপনার table এর column হিসেবে ব্যবহৃত হবে, এবং value ঐ column এর value হিসেবে Insert হবে। আরো ভালোভাবে বুঝার জন্য আপনার getqueryController class এ নিচের কোডটি লিখুন :

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class getqueryController extends Controller
{
    public function index(){
    	$data=DB::table('students')->insert(
    		['name' => 'Masud Alam', 'email' => 'masud@w3prorammers.com']);

       echo $data?"Insert Success":"Data Insert Fail";
    }
}

এখন আপনি যদি আপনার ব্রাউজার এ http://localhost:8000/getquery হিট করেন তাহলে নিচের মত ফলাফল দেখাবে :

Laravel Data Insert with Query Builder

Laravel Data Insert with Query Builder

আবার আপনি চাইলে অনেক গুলো row এর data একসাথে Insert করতে পারেন। আরো ভালোভাবে বুঝার জন্য আপনার getqueryController class এ নিচের কোডটি লিখুন :

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class getqueryController extends Controller
{
    public function index(){
    	$data=DB::table('students')->insert([
    		['name' => 'Sohag', 'email' => 'sohag@mail.com'],
    		['name' => 'Noman', 'email' => 'noman@mail.com']
    	]);

       echo $data?"Insert Success":"Data Insert Fail";
    }
}

এখন আপনি যদি আপনার ব্রাউজার এ http://localhost:8000/getquery হিট করেন তাহলে নিচের মত ফলাফল দেখাবে :

Laravel Data Insert with Query Builder

Laravel Data Insert with Query Builder

Auto-Incrementing IDs

আপনার database table এ যদি কোনো column এ auto_increment করা থাকে তাহলে আপনার সর্বশেষ Insert করা row এর id বের করার জন্য Laravel Query Builder এর insertGetId Method রয়েছে। আরো ভালোভাবে বুঝার জন্য আপনার getqueryController class এ নিচের কোডটি লিখুন :

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class getqueryController extends Controller
{
    public function index(){
    	$id = DB::table('students')->insertGetId(
    		['name' => 'Farhan', 'email' => "farhan@donald.com"]
    	);

       echo "Your Last Inserted Id: $id";
    }
}

এখন আপনি যদি আপনার ব্রাউজার এ http://localhost:8000/getquery হিট করেন তাহলে নিচের মত ফলাফল দেখাবে :

Laravel Last Insert Id

Laravel Last Insert Id

Updates

Insert Method এর মতোই Database এর এক বা একাধিক table এ Data Update করার জন্য আপনি Laravel Framework এর Query Builder এ Update Method ব্যবহার করতে পারেন। Update Method এ আপনি সরাসরি associative array পাঠিয়ে column এবং value হিসেবে Data Update করতে পারেন। অর্থাৎ আপনি যদি একটা associative array পাঠান , সেক্ষেত্রে আপনার array এর string key টা আপনার table এর column হিসেবে ব্যবহৃত হবে, এবং value ঐ column এর value হিসেবে Update হবে। তবে সে ক্ষেত্রে আপনাকে অবশ্যই where clause ব্যবহার করতে হবে। আরো ভালোভাবে বুঝার জন্য আপনার getqueryController class এ নিচের কোডটি লিখুন :

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class getqueryController extends Controller
{
    public function index(){
    	$data=DB::table('students')
            ->where('id', 1)
            ->update(['name' => 'Kabir Hossain']);

       echo $data?"Data Update Success":"Data Update Fail";
    }
}

এখন আপনি যদি আপনার ব্রাউজার এ http://localhost:8000/getquery হিট করেন তাহলে নিচের মত ফলাফল দেখাবে :

Update Data with Laravel Query Builder

Update Data with Laravel Query Builder

Updating JSON Columns

আপনি চাইলে json column ও update করতে পারেন। তবে সে ক্ষেত্রে appropriate key সিলেক্ট করার জন্য ” ->” এই sign টি ব্যবহার করতে হবে। আরো ভালোভাবে বুঝার জন্য নিচের কোডটি দেখুন :

DB::table('users')
            ->where('id', 1)
            ->update(['options->enabled' => true]);

Increment & Decrement

একটা নির্দিষ্ট column এর value increment এবং decrement এর জন্য আপনি Manual Update query এর পরিবর্তে increment/decrement method ব্যবহার করতে পারেন। দুটি মেথড এ atleast একটি argument দিতে হয়। আর দ্বিতীয় argument টি optional, অর্থাৎ কত করে increment হবে সেটা control করার জন্য।

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class getqueryController extends Controller
{
    public function index(){
    	$data=DB::table('students')->increment('visits', 2);

       echo $data?"Data Update Success":"Data Update Fail";
    }
}

Deletes

Insert এবং Update Method এর মতোই Database এর এক বা একাধিক table এ Data Delete করার জন্য আপনি Laravel Framework এর Query Builder এ Delete Method ব্যবহার করতে পারেন। Delete Method দিয়ে আপনি একসাথে সব data delete করে দিতে পারেন। আবার where clause ব্যবহার করে একটি নির্দিষ্ট row delete করতে পারেন । আরো ভালোভাবে বুঝার জন্য আপনার getqueryController class এ নিচের কোডটি লিখুন :

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
class getqueryController extends Controller
{
    public function index(){
    	$result=DB::table('courses')->delete();
    	$result2=DB::table('students')->where('id', '=', 4)->delete();
       echo $result?"All Data Delete Success<br>":" All Data Delete Fail<br>";
       echo $result2?"Data Delete Success":" Data Delete Fail";
    }
}

এখন আপনি যদি আপনার ব্রাউজার এ http://localhost:8000/getquery হিট করেন তাহলে নিচের মত ফলাফল দেখাবে :

Delete Data using Laravel Query Builder

Delete Data using Laravel Query Builder

আপনি যদি পুরো টেবিলের মুছে ফেলতে চান, অর্থাৎ , যা সব সারি মুছে ফেলবে এবং auto increment id reset করবে , তাহলে আপনি Query Builder এর truncate Method ব্যবহার করতে পারেন, আরো ভালোভাবে বুঝার জন্য নিচের কোডটি দেখুন :

DB::table('users')->truncate();

এই ক্যাটাগরির অন্যান্য পোস্ট:

Masud Alam
আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ৮ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। বিশেষ ভাবে বাংলাদেশের ১০০ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ৫২ জন ই আমার হাতে জেন্ড সার্টিফাইড হয়েছে। বর্তমানে TechBeeo Software Company তে সিইও হিসাবে আছি । পাশাপাশি w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -7 Engineering কোর্স করাই। আর w3programmers.com সাইট টি আমার।
2 comments on “বাংলায় PHP LARAVEL FRAMEWORK পর্ব-১৪:Insert, Update and Delete with Laravel Query Builder

Leave a Reply

Your email address will not be published. Required fields are marked *