ต้องการนำข้อมูลในฐานข้อมูลที่มีอยู่แล้วมาแสดง โดยแยกฐานข้อมูลผู้ใช้งาน เป็นคนละฐานข้อมูล
สามารถทำได้ไหมครับ
กรกฎ วิริยะ 04 มี.ค. 2564 00:14
ได้ครับ อย่างแรกเลยต้องทำการตั้งค่าก่อน โดยดูจากไฟล์ settings/database.php จะเห็น section mysql อยู่ ซึ่งค่าเริ่มต้นของ Model ของ Kotchasan จะเชื่อมต่อกับฐานข้อมูลตามค่าต่างๆที่อยู่ใน section นี้
/* 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 ที่ต้องการจะเชื่อมต่อเอาก็ได้นะครับ
Mega Unix 04 มี.ค. 2564 03:13
เยี่ยมมากๆ ครับ จะลองทำดู
ขอบคุณ​อาจารย์​มากเลยครับ

โพสต์ตอบกลับ

กรุณาตรวจสอบให้ถูกต้องก่อนส่ง สามารถใช้ BBCode ได้
ประเภท jpg, jpeg, png, webp อัปโหลดรูปภาพหรือไม่ก็ได้