Kotchasan framework สามารถเชื่อมต่อ database มากกว่า 1 database
ต้องการนำข้อมูลในฐานข้อมูลที่มีอยู่แล้วมาแสดง โดยแยกฐานข้อมูลผู้ใช้งาน เป็นคนละฐานข้อมูล
สามารถทำได้ไหมครับ
สามารถทำได้ไหมครับ
ได้ครับ อย่างแรกเลยต้องทำการตั้งค่าก่อน โดยดูจากไฟล์ settings/database.php จะเห็น section mysql อยู่ ซึ่งค่าเริ่มต้นของ Model ของ Kotchasan จะเชื่อมต่อกับฐานข้อมูลตามค่าต่างๆที่อยู่ใน section นี้
หากต้องการเชื่อมต่อกับฐานข้อมูลอื่น ให้เพิ่ม section ใหม่ สมมุติชื่อ mysql2
จากนั้นเอาค่า mysql2 ไปสร้าง Model ใหม่ ตามโค้ดด้านล่าง
หากต้องการเชื่อมต่อกับฐานข้อมูล mysql2 ก็ให้สืบทอดมาจาก Model นี้แทน (สืบทอดจาก Model เดิมเราจะใช้ \Kotchasan\Model) หรือจะใช้วิธีกำหนด $conn ลงใน Model ที่ต้องการจะเชื่อมต่อเอาก็ได้นะครับ
/* settings/database.php */
return array(
'mysql' => array(
'dbdriver' => 'mysql',
'username' => 'root',
'password' => '',
'dbname' => 'enrollment',
'prefix' => 'reg',
),
'tables' => array(หากต้องการเชื่อมต่อกับฐานข้อมูลอื่น ให้เพิ่ม section ใหม่ สมมุติชื่อ mysql2
/* settings/database.php */
return array(
'mysql' => array(
'dbdriver' => 'mysql',
'username' => 'root',
'password' => '',
'dbname' => 'enrollment',
'prefix' => 'reg',
),
'mysql2' => array(
'dbdriver' => 'mysql',
'username' => 'root',
'password' => '',
'dbname' => 'other_db',
'prefix' => 'new',
),
'tables' => array(จากนั้นเอาค่า mysql2 ไปสร้าง Model ใหม่ ตามโค้ดด้านล่าง
<?php
/**
* @filesource Gcms/Model.php
*
* @copyright 2016 Goragod.com
* @license http://www.kotchasan.com/license/
*
* @see http://www.kotchasan.com/
*/
namespace Gcms;
/**
* Model base class.
*
* @author Goragod Wiriya <admin@goragod.com>
*
* @since 1.0
*/
class Model extends \Kotchasan\Model
{
/**
* ชื่อของการเชื่อมต่อ ใช้สำหรับโหลด config จาก settings/database.php.
*
* @var string
*/
protected $conn = 'mysql2';
}หากต้องการเชื่อมต่อกับฐานข้อมูล mysql2 ก็ให้สืบทอดมาจาก Model นี้แทน (สืบทอดจาก Model เดิมเราจะใช้ \Kotchasan\Model) หรือจะใช้วิธีกำหนด $conn ลงใน Model ที่ต้องการจะเชื่อมต่อเอาก็ได้นะครับ
เยี่ยมมากๆ ครับ จะลองทำดู
ขอบคุณอาจารย์มากเลยครับ
ขอบคุณอาจารย์มากเลยครับ