1. Codeigniter Framework (CodeIgniter Framework Tutorial) Basic Tutorials of Codeigniter Framework
  2. কোডইগনাইটার ইনস্টল (CodeIgniter Install Tutorial in Bangla)
  3. How to create First Application in CodeIgniter
  4. কোডইগনাইটারের URL স্ট্রাকচার (structure of codeigniter)
  5. Codeigniter দিয়ে query করা এবং result দেখা (CI Query & Show Results)
  6. Database থেকে Data দেখা (CI Fetch Data from Database)
  7. Model তৈরী এবং কন্ট্রোলারে Access (Create Model & Access in Controller)
  8. Codeigniter দিয়ে ডেটাবেসে data ঢুকানো (CodeIgniter Insert Data to Database)
  9. Form দিয়ে ডেটাবেসের data সম্পাদনা (Data Edit in Database Via Form | Codeigniter Tutorials)
  10. ডেটাবেসের data delete (Data Delete in Database | Codeigniter Tutorials) | SP Foundationbd
  11. Form Validation টিউটোরিয়াল (CI Form Validation Tutorial | Codeigniter Tutorials) | SP Foundation
  12. Form validation tutorials (CI Form Validation Tutorial) - আরও উন্নত validation
  13. Codeigniter bootstrap integration এবং best প্রাকটিস | SP Foundationbd
  14. Codeigniter পেজিনেশন Tutorials (CodeIgniter Pagination Tutorial) | SP Foundationbd
  15. কোডইগনাইটার pagination tutorials (CodeIgniter Pagination Tutorial) - ২য় পদ্ধতিতে pagination
  16. Codeigniter সেশন Management (Session Management CodeIgniter) part one
  17. Codeigniter session ম্যানেজমেন্ট (Session Management CodeIgniter) - সেশন ড্রাইভার part two
  18. কোডইগনাইটার file আপলোড (CodeIgniter File Upload)
  19. কোডইগনাইটার Ajax টিউটোরিয়াল (CodeIgniter Ajax Tutorial) | SP Foundationbd
  20. কোডইগনাইটার URI রাউটিং টিউটোরিয়াল (CodeIgniter URI Routing Bangla Tutorials) | SP Foundationbd
  21. কোডইগনাইটারে একসাথে একাধিক ডেটাবেস ব্যবহার (Use Multiple Database Together in CodeIgniter)

Codeigniter দিয়ে ডেটাবেসে data ঢুকানো (CodeIgniter Insert Data to Database)

এবার খুব সাধারন একটি form তৈরী করে দেখাব যেটা দিয়ে এর আগে তৈরী "users" টেবিলে data ঢুকানো যাবে। এজন্য "Users" কন্ট্রোলারেই index মেথডের নিচে আরেকটি নতুন মেথড বানাব যার নাম "create" এই মেথডের জন্য একটা নতুন ভিউ ফাইল বানাতে হবে যেখানে form টি থাকবে। "Views" ডিরেক্টরিতে গিয়ে "create.php" নামে একটি php ফাইল তৈরী করুন। যেকোন নাম দিতে পারেন, তবে অন্যান্য অনেক framework আছে যেখানে মেথডরে নামের সাথে মিল রেখে view file তৈরী করতে হয়। কোডইগনাইটারে এরুপ কোন বাধ্যবোধকতা নেই, তার মানে এই নয় যে উল্টা পাল্টা নাম দিতে হবে। বরং প্রাসঙ্গিক নাম দেয়াই উচিৎ। যেমন আমি "Create" মেথডের জন্য "create.php" ভিউ ফাইল বানালাম।

view file (spfoundationbd/application/views/create.php)

01.<html>

02.<head>

03.<title><?php echo $title; ?></title>

04.</head>

05.<body>

06.<form action="<?php echo site_url('users/create');?>" method="post">

07.<p><input type="text" name="username"/></p>

08.<p><input type="text" name="email"/></p>

09.<textarea name="about"></textarea>

10.<p><input type="submit" name="submit" value="Create"/></p>

11.</form>

12.</body>

13.</html>

 ** যখন কোন একশন/মেথডের link দিবেন তখন site_url() এর ভিতরে প্যারামিটার হিসেবে controller/method এভাবে দিবেন যেমন উপরে ফর্মের একশন দিয়েছি। কখনই config.php ফাইলের $config['index_page'] এগুলির মান পরিবর্তন করবেন না। এখন বলতে পারেন তাহলে রিসোর্সের link কিভাবে দেব যেমন css, javascript ফাইল ইত্যাদি। এটার জন্য কোডইগনাইটারে আরেকটি function আছে নাম base_url() এখানে প্যারামিটার হিসেবে রিসোর্সের লিংক দিতে হয়। এভাবে দিলে প্রোডাকশন সার্ভার কিংবা লোকাল সার্ভার কোথা আর config.php ফাইলে হাত দিতে হবেনা। দুই জায়গাতেই অটোমেটিক ঠিকভাবে কাজ করবে।

1.echo base_url('assets/css/style.css');

 ** url helper load করে নিতে হবে site_url(), base_url() ইত্যাদি function ব্যবহারের জন্য। অটোলোড করা ভাল হবে কেননা পুরো প্রজেক্ট জুড়ে এসব ফাংশনের কাজ থাকবে। এজন্য অটোলোড ফাইলে (spfoundationbd /application/config/autoload.php) গিয়ে নিচের মত যেকোন helper autoload করাতে পারেন

1.$autoload['helper'] = array('url');

 ** আমি সরাসরি HTML ব্যবহার করেছি view ফাইলে তবে কোডইগনাইটারে html, form ইত্যাদি helper আছে এগুলি ব্যবহার করে যেকোন html লেখা যায়। যেমন উপরের form টি যদি helper ব্যবহার করে করতাম

01.<?php $this->load->helper('form'); ?>

02.<html>

03.<head>

04.<title><?php echo $title; ?></title>

05.</head>

06.<body>

07.<?php echo form_open('users/create');?>

08.<p><?php echo form_input('username');?></p>

09.<p><?php echo form_input('username');?></p>

10.<?php echo form_textarea('about');?>

11.<p><?php echo form_submit('submit','Create');?></p>

12.</form>

13.</body>

14.</html>

আপনার ইচ্ছেমত করবেন, আমি এসব html তৈরীর জন্য helper ব্যবহার করিনা। বিরক্ত লাগে বিশেষ করে সার্চের সময় ঝামেলা হয়।

 "Users" কন্ট্রোলারের "create" মেথড (spfoundationbd /application/controllers/Users.php)

1.public function create() {

2.$data['title'] = 'Create New User';

3.$this->load->view('create', $data);

4.}

 এবার "http://localhost/ spfoundationbd /index.php/users/create" এই URL গেলে নিচের মত একটি সাধারন form পাবেন।

এবার Create মেথডেই কোড লিখব যেটা উপরের form টি submit হলে execute  হবে।

01.public function create() {

02.$data['title'] = 'Create New User';

03.if($this->input->post('submit')){

04.$username = $this->input->post('username',TRUE);

05.$email = $this->input->post('email',TRUE);

06.$about = $this->input->post('about',TRUE);

07.$user = array(

08.'username' => $username,

09.'email' => $email,

10.'about' => $about

11.);

12.$this->db->insert('users',$user);

13.redirect('users');

14.}

15.$this->load->view('create', $data);

16.}

 ব্যাখ্যা: নম্বর লাইনে প্রথমে চেক করেছি form টি submit হয়েছে কিনা। কোডইগনাইটারে input নামে একটি class আছে এই ক্লাস দিয়ে post কৃত ফর্মের ডেটা পায়া যায়। raw PHP তে $_POST['field_name'], $_GET[] কিংবা $_REQUEST[] এসব দিয়ে যেভাবে ফর্মের data পাই CI তে $this->input->post('field_name') এভাবে যেকোন পোস্ট ফিল্ডের মান পাওয়া যায়। যাই হোক শুধু মাত্র "Create" বাটনে ক্লিক করে ফর্মটি সাবমিট হবে এবং শুধু তখনই -১৩ নম্বর লাইন পর্যন্ত এক্সিকিউট হবে তানাহলে সব কোড থাকার পরেও শুধু ফর্মটি দেখাবে।

এবার form submit করলে $username =  $this->input->post('username',TRUE); এভাবে username ফিল্ডে দেয়া মান ধরেছি। "username" এর পর TRUE প্যারামিটারটি ঐচ্ছিক তবে দিয়েনে এটা ভাল প্রাকটিস। এটা দিলে data automatic ফিল্টার হয়ে আসবে, যদি কোন হ্যাকার ক্ষতিকর input দেয় তাহলে সেটা মুছে $username এর data কে নিরাপদ করে দিবে। তদ্রুপ $email, $about সেভাবে নিয়েছি।

এরপর $user নামে একটি অ্যারে তৈরী করেছি যেখানে key হচ্ছে ডেটাবেস টেবিলের column নাম আর value হল ভেরিয়েবল যার মান কলামে সেভ করতে চাচ্ছি। যেমন আমি username নামের কলামে $username এর ডেটা রাখতে চাই তাই সেভাবেই অ্যারেটি তৈরী করেছি। তারপর CI এর Query Builder এর একটি মেথড insert() ব্যবহার করে users টেবিলে ডেটা ঢুুকিয়েছি। এই insert মেথড users টেবিলে data ঢুকানোর সব ব্যবস্থা করে অন্য কোন কোয়েরি লেখার দরকার নেই। এটাই raw পিএইচপি দিয়ে করলে এখানে সব কোয়েরি সাথে অন্যান্য function ইত্যাদি লিখতে হত।

সবশেষে redirect() মেথডে ডেটা ইনসার্টের পর কোন কন্ট্রোলারে যাবে সেটা দিয়েছি অর্থ্যাৎ users কন্ট্রোলারে। সুতরাং ডেটা ইনসার্ট হলে users কন্ট্রোলারের index মেথডে রিডাইরেক্ট করে নিয়ে যাবে। যেখানে আমাদের টেবিলটি থেকে সব data তুলে এনে দেখার code আছে। (যেকোন কন্ট্রোলারের পর মেথডের নাম না দিলে বাই ডিফল্ট index মেথড লোড হয়)

এবার এটা প্রাকটিস করুন এবং ডেটাবেসে কিংবা ব্রাউজারে "http://localhost/ spfoundationbd /index.php/users" এই URL রান করিয়ে দেখুন যেসব ডেটা create মেথড দিয়ে তৈরী করবেন সেগুলি দেখাবে।

 

এখন পর্যন্ত করা কন্ট্রোলার, মডেল এবং view ফাইল ডাউনলোড করুন। আগের tutorials গুলি যেহেতু পড়েছেন তাহলে অবশ্যই জানেন কোন ফাইলের নাম কি এবং কোথায় থাকবে, তারপরেও সব ফাইলে লেখা আছে ফাইলটির নাম কি হবে এবং কোথায় রাখতে হবে।