شاید برای شمام پیش اومده باشه در وب اپلیکیشن کدایگنایتری که می‌نویسید نیاز داشته باشید به چندین دیتابیس وصل بشید و بتونید در چارچوب کدهای کدایگنایتر از کوئری‌ها و... استفاده کنید.

آموزش اتصال به چندین دیتابیس در کدایگنایتر

خب وقتو تلف نکنیم بریم سراغ آموزش؛ ابتدا در ادیتور به مسیر زیر برید:

application/config/database.php

فایل database.php رو باز کنید؛ و کد $db['default'] رو که احتمالا در خط ۷۶ ام باشه رو پیدا کنید حالا میتونید همانند کدهای زیر یک کانکشن جدید اضافه کنید:

//Default database configuration
$db['default'] = array(
    'dsn'       => '',
    'hostname' => 'localhost',
    'username' => 'db_username',
    'password' => 'db_password',
    'database' => 'db_name',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt'  => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

//Another database configuration
$db['another_db'] = array(
    'dsn'       => '',
    'hostname' => 'localhost',
    'username' => 'db_username',
    'password' => 'db_password',
    'database' => 'db_name2',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt'  => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

اگر دقت کرده باشید به کد بالا ما در واقع یک کپی از آرایه $db['default'] گرفتیم و اسمشو another_db گذاشتیم؛ در این آرایه جدید اطلاعات دیتابیس دوم رو قرار بدهید.

نحوه استفاده

برای استفاده در کنترولر یا مدلتون در ابتدای کدتون یا در کنستراکت کلاس کد زیر رو قرار بدید:

//Load another database
$DB2 = $this->load->database('another_db', TRUE);

نکته: another_db همان اسمی هست در فایل database.php قرار دادیم، دقت داشته باشید که پارامتر دوم متد حتما TRUE باشه.

برای کوئری زدن با دیتابیس دوم بصورت زیر عمل میکنیم:

//Default database query
$this->db->select('first_name, last_name');
$this->db->from('users');
$this->db->where('id', 99);
$query = $this->db->get();


//Another database query
$DB2->select('image');
$DB2->from('cdn_images');
$DB2->where('id', 25);
$query = $DB2->get();

تمام؛ اگر سوال یا مشکلی داشتید در انجمن در بخش کدایگنایتر مطرح کنید.