مدیریت بانک اطلاعاتی در کدایگنایتر

مدیریت بانک اطلاعاتی در کد ایگنایتر  شامل ساخت و مدیریت جداول پایگاه داده می باشد . این عملیاتها به صورت جامع  و راحت در کد ایگنایتر فراهم شده است . فقط کافی است کتابخانه 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

 

پیشنهاد پیرو برای شما :   آموزش reactJS

متدهای فیلدها:

  • 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

 

پیشنهاد پیرو برای شما :   کمک کننده (Helper)در کد ایگنایتر

در پارامثر سوم یک سری ویژگی ها دریافت و اعمال می شود

$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