مدیریت بانک اطلاعاتی در کد ایگنایتر شامل ساخت و مدیریت جداول پایگاه داده می باشد . این عملیاتها به صورت جامع و راحت در کد ایگنایتر فراهم شده است . فقط کافی است کتابخانه dbforge را در load کنید و از متدهای آن برای ساخت جداول پایگاه داده استفاده نمایید.
نحوه بارگزاری dbforge codeigniter
$this->load->dbforge();
در کد بالا کتابخانه مربوطه را بارگزاری نموده ایم.
و همانگونه که می دانید نحوه استفاده از متدهای کتابخانه ها در کد ایگنایتر به شکل زیر می باشد.
$this->dbforge->some_method();
ساخت بانک اطلاعاتی در کدایگنایتر
با استفاده از دستور زیر می توانید یک بانک اطلاعاتی بسازید و درونش جداول را تعیین کنید البته این عملیات بستگی به مجوزهای شما هم دارد .
$this->dbforge->create_database('my_db')
توجه داشته باشید این دستور مقدار درست یا اشتباه بر می گرداند که می توان از آنها برای چک کردن صحت عملیات استفاده شود.
$this->load->dbforge(); if ($this->dbforge->create_database('my_db')) { echo 'Database created!'; }
حذف بانک اطلاعاتی در کدایگنایتر
تمام روال دقیقا مثل ساخت یک بانک اطلاعاتی در کد ایگنایتر می باشد ولی با دستور drop_database
$this->dbforge->drop_database('my_db')
ساخت و حذف جداول بانک اطلاعاتی در کدایگنایتر
برای ساخت جداول در بانک اطلاعاتی نیاز است ابتدا فیلدها را تعریف کنیم و یعد کلیدها را تعریف کنیم که در ادامه به صورت کامل به همه موارد می پردازیم:
ساخت فیلد ها در کد ایگنایتر
به هر عنصر یک جدول یک فیلد می گوییم همانند نام خانوادگی در جدول مشخصات فرد می باشد . ساخت فیلدها در کدایگنایتر بسیار راحت می باشد فقط کافی است آرایه های تعریف کنیم و نوع آن را مشخص کنیم .مانند کد زیر:
$fields = array( 'users' => array( 'type' => 'VARCHAR', 'constraint' => '100', ), ); // will translate to "users VARCHAR(100)" when the field is added
متدهای فیلدها:
- unsigned/true : “UNSIGNED” مشخص کردن مقدار
- default/value : مقدار پش فرض
- null/true : برای مشخص کردن بتواند تهی باشد با خیر پیش فرض نمی تواند باشد
- auto_increment/true :به طور اتوماتیک عدد بگیرد
- unique/true : مقدار بدون تکرار باشد
در مثال زیر می توانید یک نمونه خوب را مشاهده فرمایید:
$fields = array( 'blog_id' => array( 'type' => 'INT', 'constraint' => 5, 'unsigned' => TRUE, 'auto_increment' => TRUE ), 'blog_title' => array( 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => TRUE, ), 'blog_author' => array( 'type' =>'VARCHAR', 'constraint' => '100', 'default' => 'King of Town', ), 'blog_description' => array( 'type' => 'TEXT', 'null' => TRUE, ), );
بعد از تعریف فیلدها نوبت به رند کردن آن بوسیله دستور زیر می رسد
$this->dbforge->add_field($fields);
و بعد از آن می توانید جدول را بسازید : create_table()
ساختن فیلدها به صورت رشته ای در مدیریت بانک اطلاعاتی در کدایگنایتر
بوسیله رشته ای هم می توان فیلدها را ساخت :
$this->dbforge->add_field("label varchar(100) NOT NULL DEFAULT 'default label'");
افزودن کلید درمدیریت بانک اطلاعاتی در کدایگنایتر
به منظور کلید اصلی در جدلول از کدهای زیر می توان استفاده کرد:
$this->dbforge->add_key('blog_id', TRUE); // gives PRIMARY KEY `blog_id` (`blog_id`) $this->dbforge->add_key('blog_id', TRUE); $this->dbforge->add_key('site_id', TRUE); // gives PRIMARY KEY `blog_id_site_id` (`blog_id`, `site_id`) $this->dbforge->add_key('blog_name'); // gives KEY `blog_name` (`blog_name`) $this->dbforge->add_key(array('blog_name', 'blog_label')); // gives KEY `blog_name_blog_label` (`blog_name`, `blog_label`)
ساخت جداول در مدیریت بانک اطلاعاتی در کدایگنایتر
بعد از ساخت فیلدها باید با استفاده از کد زیر جدول را بوجود آورد :
$this->dbforge->create_table('table_name'); // gives CREATE TABLE table_name
پارامتر دوم در صورتی که true تنظیم شود در صورتی که جدول موجود نباشد می سازد
$this->dbforge->create_table('table_name', TRUE); // gives CREATE TABLE IF NOT EXISTS table_name
در پارامثر سوم یک سری ویژگی ها دریافت و اعمال می شود
$attributes = array('ENGINE' => 'InnoDB'); $this->dbforge->create_table('table_name', FALSE, $attributes); // produces: CREATE TABLE `table_name` (...) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
حذف جداول در بانک اطلاعاتی کد ایگنایتر در مدیریت بانک اطلاعاتی در کدایگنایتر
با استفاده از کد زیر می توانید جدلول را حذف نمایید:
// Produces: DROP TABLE table_name $this->dbforge->drop_table('table_name'); // Produces: DROP TABLE IF EXISTS table_name $this->dbforge->drop_table('table_name',TRUE);
پارامتر دوم در صورتی که true تنظیم شود در صورتی که جدول موجود نباشد می سازد
تغییرنام جداول
$this->dbforge->rename_table('old_table_name', 'new_table_name'); // gives ALTER TABLE old_table_name RENAME TO new_table_name
در پامتر اول نام جدول جاری و پارامتر دوم نام جدید.
ویرایش جداول بانک اطلاعاتی در مدیریت بانک اطلاعاتی در کدایگنایتر
در مدیریت بانک اطلاعاتی در کدایگنایتر ویرایش اطلاعات همانند افزودن بسیار کاربردی و راحت می باشد:
افزودن فیلد به جداول بانک اطلاعاتی
برای افزودن فیلد به جدول جاری از متد add_column() استفاده میکنیم :
$fields = array( 'preferences' => array('type' => 'TEXT') ); $this->dbforge->add_column('table_name', $fields); // Executes: ALTER TABLE table_name ADD preferences TEXT
در پارامتر اول نام جدول و در پارامتر دوم آرایه ای از فیلدها را دریافت می کند.
حذف فیلدها از جداول
$this->dbforge->drop_column('table_name', 'column_to_drop');
پارامتر اول نام جدول و پارامتر دوم نام فیلد به منظور حذف.
ویرایش فیلدهای جداول
برای ویرایش فیلدها همانند اقزودن فیلدها رفتار می کنیم .
$fields = array( 'old_name' => array( 'name' => 'new_name', 'type' => 'TEXT', ), ); $this->dbforge->modify_column('table_name', $fields); // gives ALTER TABLE table_name CHANGE old_name new_name TEXT
منبع : https://www.codeigniter.com/user_guide/database/forge.html