You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter 4的DatabaseHandler是否支持SQLSRV存储会话?

CodeIgniter 4 中使用 SQLSRV 存储会话的可行性及配置方法

可以实现,CodeIgniter 4 的 DatabaseHandler 会话驱动支持所有框架已兼容的数据库类型,其中就包括 SQLSRV,完全可以延续你在 CI3 中用 SQLSRV 存储会话的方案。

具体配置步骤:

  • 第一步:确保 SQLSRV 数据库驱动正常工作
    先确认 PHP 已启用 sqlsrv 扩展,然后在 app/Config/Database.php 中配置好 SQLSRV 数据库连接组:

    public $default = [
        'DSN'      => 'sqlsrv:Server=your_server;Database=your_db',
        'hostname' => '',
        'username' => 'your_username',
        'password' => 'your_password',
        'database' => 'your_db',
        'DBDriver' => 'SQLSRV',
        // 其他配置项...
    ];
    
  • 第二步:配置会话使用 DatabaseHandler
    打开 app/Config/Session.php,修改以下配置:

    // 设置会话驱动为数据库
    public $driver = 'Database';
    // 指定使用的 SQLSRV 数据库连接组(如果用默认组就填 'default')
    public $databaseGroup = 'default';
    // 可选:自定义会话表名,默认是 'ci_sessions'
    public $table = 'ci_sessions';
    
  • 第三步:创建会话表(若未存在)
    若数据库中还没有会话表,可以参考以下 SQLSRV 兼容的表结构创建:

    CREATE TABLE ci_sessions (
        id VARCHAR(128) NOT NULL PRIMARY KEY,
        ip_address VARCHAR(45) NOT NULL,
        timestamp INT NOT NULL DEFAULT 0,
        data NVARCHAR(MAX) NOT NULL
    );
    CREATE INDEX ci_sessions_timestamp ON ci_sessions(timestamp);
    

如果之前在 CI3 中已经有现成的 SQLSRV 会话表,只要字段类型和 CI4 的要求兼容(比如 data 字段支持存储长文本),也可以直接复用,无需重新创建。

内容的提问来源于stack exchange,提问作者user752746

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:55:20