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

如何使用XAMPP(PHP 8.0)实现CodeIgniter 4与SQL Server的连接

CodeIgniter 4 连接 SQL Server 完整分步指南

1. 安装PHP SQL Server扩展

CodeIgniter 4 依赖PHP的sqlsrv或pdo_sqlsrv扩展连接SQL Server,需先完成扩展安装:

  • Windows环境
    • 下载与你的PHP版本、系统架构(x86/x64)匹配的sqlsrv和pdo_sqlsrv扩展文件
    • 将扩展文件放到PHP安装目录的ext文件夹中
    • 打开php.ini文件,添加以下两行后保存:
      extension=sqlsrv
      extension=pdo_sqlsrv
      
    • 重启Apache、Nginx或IIS等Web服务器
  • Linux环境
    • 执行以下命令通过PECL安装扩展:
      pecl install sqlsrv pdo_sqlsrv
      
    • 在php.ini文件中添加扩展加载配置,重启Web服务器
  • 验证扩展:创建含phpinfo();的PHP文件,访问后确认页面存在sqlsrv和pdo_sqlsrv模块信息

2. 配置CodeIgniter 4数据库连接

方法一:修改配置文件

打开项目根目录下的app/Config/Database.php,找到$default数组,替换为如下配置:

public $default = [
    'DSN'      => '',
    'hostname' => 'localhost', // 远程连接填IP+端口,如'192.168.1.100,1433'
    'username' => 'sa', // SQL Server用户名
    'password' => 'your_password', // 数据库密码
    'database' => 'your_database_name', // 目标数据库名称
    'DBDriver' => 'sqlsrv', // 必须设置为sqlsrv
    'DBPrefix' => '',
    'pConnect' => false,
    'DBDebug'  => (ENVIRONMENT !== 'production'),
    'charset'  => 'utf8',
    'DBCollat' => '',
    'swapPre'  => '',
    'encrypt'  => false, // 需加密连接则设为true
    'compress' => false,
    'strictOn' => false,
    'failover' => [],
    'port'     => 1433, // SQL Server默认端口,自定义端口请修改
];

方法二:使用环境变量(推荐)

复制项目根目录的.env.example并重命名为.env,添加以下配置:

database.default.DBDriver = sqlsrv
database.default.hostname = localhost
database.default.username = sa
database.default.password = your_password
database.default.database = your_database_name
database.default.port = 1433

3. 测试数据库连接

创建测试控制器验证连接状态:

  1. 在app/Controllers目录下新建TestDb.php,内容如下:
<?php namespace App\Controllers;

use CodeIgniter\Database\Exceptions\DatabaseException;

class TestDb extends BaseController
{
    public function index()
    {
        $db = \Config\Database::connect();
        try {
            $db->connect();
            echo "<h3>SQL Server数据库连接成功!</h3>";
        } catch (DatabaseException $e) {
            echo "<h3>连接失败:</h3>" . $e->getMessage();
        }
    }
}
  1. 启动CI4开发服务器或通过Web服务器访问http://你的域名/testdb,查看输出结果

4. 常见问题排查

  • 连接超时/失败:检查SQL Server是否允许远程连接、防火墙是否开放1433端口、用户名密码是否正确、目标数据库是否存在
  • 扩展加载失败:确认PHP版本与扩展版本匹配,php.ini中的扩展路径配置正确
  • 字符乱码:将数据库字符集设为UTF-8,同时确保CI4配置中的charset为utf8
  • 加密连接问题:启用加密连接时,将配置中的encrypt设为true,并确保SQL Server已开启SSL连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:32:20