Monday, May 11, 2026

Session table for CodeIgnitor 4

  • Execute sql command

 CREATE TABLE IF NOT EXISTS `ci_sessions` (

    `id`         varchar(128) NOT NULL,

    `ip_address` varchar(45)  NOT NULL,

    `timestamp`  timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

    `data`       blob         NOT NULL,

    KEY `ci_sessions_timestamp` (`timestamp`)

);

  • ตรวจสอบแก้ไข app/Config/Session.php ถ้ามีไฟล์นี้ใน
  • CI4 เวอร์ชันใหม่ย้าย config มาไว้ที่นี่
  • ด้านบนสุดของไฟล์ session.php ต่อจาก namespace Config; เพิ่ม

use CodeIgniter\Session\Handlers\DatabaseHandler;
  • และในไฟล์ ให้แก้ไขเป็นประมาณนี้
// public string $driver = FileHandler::class;

public string $driver = DatabaseHandler::class; 

// public string $savePath = WRITEPATH . 'session';

public string $savePath = 'ci_sessions'; 

// public ?string $DBGroup = null;

public string $DBGroup = 'default'; // ชื่อ db group ใน Database.php

-------------------------------------------------------------------------

  • CI4 อันเก่าก็ให้แก้ที่ app/Config/App.php 

// ถ้าพบบรรทัดนี้ให้ เปลี่ยนบรรทัดนี้ (ต่อจาก namespace)

use CodeIgniter\Session\Handlers\FileHandler;

// เป็น

use CodeIgniter\Session\Handlers\DatabaseHandler;

// เปลี่ยน sessionDriver

public string $sessionDriver = DatabaseHandler::class;

// เปลี่ยน sessionSavePath เป็นชื่อ table

public string $sessionSavePath = 'ci_sessions';

  • หรือ ถ้าไม่พบ use CodeIgniter\Session\Handlers\FileHandler; เราอาจจะพบด้านล่างนี้แทน

// public $sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler'; 

public $sessionDriver = 'CodeIgniter\Session\Handlers\DatabaseHandler';  

No comments:

Post a Comment

Popular Posts