thinkphp5 连接 SqlServer 运行存储过程,返回为空解决方案

在不支持 sqlsrv 扩展的 Windows 服务器环境下,项目采用 ThinkPHP5 框架连接 SQLServer 数据库。通过修改配置文件和添加特定方法,成功运行存储过程并获取返回结果。本文档记录了具体的操作步骤和代码片段,适用于无法安装扩展的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目做在win下,服务器是类似空间服务器,所以不可以装扩展,只能yum

老板又非要用双数据库(sqlsever 心酸里程) ,结果就是服务器sqlsrv 不可用,装的是dblib  ......云云云

贴代码记录一下,返回结果成功 ,代码copy修改,其中有些不懂的地方 或者还有更好的方法,随时欢迎赐教

修改配置文件 database.php

'db2'   => [
        //本地
        'type'            => 'sqlsrv',
        // 服务器地址
        'hostname'        => '127.0.0.1',
        // 数据库名
        'database'        => '****',
        // 用户名
        'username'        => 'sa',
        // 密码
        'password'        => 'root',
        // 端口
        'hostport'        => '1433',
    ],

\thinkphp\library\think\db\connector\Sqlsrv.php

$dsn = 'sqlsrv:Database=' . $config['database'] . ';Server=' . $config['hostname'];

改为:

$dsn = 'dblib:version=8.0;charset=utf8;dbname=' . $config['database'] . ';host=' . $config['hostname'];

\thinkphp\library\think\db\Query.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值