Articles that updated a long time ago may have already lost the technical merit. Please kindly pay attention while reading.

因项目需要,要使用 Laravel 连接微软的 SQL Server,虽然这种组合显得非常奇葩,但经过测试还是可以成功实现的。

准备

首先,因为 Laravel 连接数据库默认是使用 PDO 扩展,而 PDO 连接 SQL Server 需要使用 pdo_dblib 扩展,所以首先第一步就是安装此扩展。

MAC 系统

直接使用 brew 命令安装即可。

背后的Hardwell/2333

安装完成不要忘记valet restart

群晖 NAS

打开 WebStation,切换到 PHP 设置页面,选中 pdo_dblib 扩展,应用即可。

个人感觉,群晖 WebStation 做得还是蛮方便的。

开始

laravel new创建项目,laravel 5.5 在config/database.php自带 sqlsrv 的配置模板,因此判定应该能够直接支持,不需要第三方扩展包。

修改.env配置如下:

DB_CONNECTION=sqlsrv
DB_HOST=服务器地址
DB_PORT=服务器端口
DB_DATABASE=数据库名
DB_USERNAME=用户名
DB_PASSWORD=密码

见效

修改routes/web.php文件,使用 DB Facade 直接运行查询并打印:

Route::get('/', function () {
    dd(DB::select('select * from he_Building'));
});

运行:

DONE!

后续问题

关于中文乱码问题,两篇较有价值参考文章:

PHP 在类 Unix 环境下使用 PDO 连接 SQL Server 的问题

php 使用 dblib 扩展,连接 sqlserver 中文乱码问题