Laravel5.2连接SQL Server

这玩意儿真是个坑, 数据库课设要求必须要用SQL Server, 对于我这种常年不用Windows的人真是挺难受的.

在Linux下使用pdo_sqlsrv目前还没有成功, 因为...国内网络太那啥.

提供一些参考, 实验成功的朋友可以跟大家分享一下.

Laravel默认使用的是pdo_sqlsrv这个模块.

Laravel配置

在config/database.php里插入以下内容, 然后修改.env文件里对应的选项. 如果是一键安装包的话, 下面这部分是直接有的, 直接修改.env和默认数据库.

'sqlsrv' => [
    'driver' => 'sqlsrv',
    'host' => env('DB_HOST', 'localhost'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'prefix' => '',
],


Linux

Linux版的模块

2.0, 3.0因为文件中缺少config.m4所以...宝宝用pear install的时候直接就失败了.

4.0 需要PHP7以上, 宝宝pear install时候, 提示无法使用std=c++11参数, 看了一下, 是因为Centos6.8的自带的gcc是4.4的, 好像要升到4.8后才能使用. 然后打算手动编译安装gcc4.8, 但因为网络太差(国外的数据访问老慢了), 所以就暂时放下了.

Windows

需要使用的是微软提供的驱动. 点我

我直接用的是4.0的版本. 双击运行后会提出一个输入框让你填入php的ext的路径.

填完后它会自动把DLL文件解压到那个目录.

然后就是修改php.ini. 插入以下内容

extension=php_sqlsrv_7_ts_x86.dll
extension=php_sqlsrv_7_nts_x86.dll
extension=php_pdo_sqlsrv_7_ts_x86.dll
extension=php_pdo_sqlsrv_7_nts_x86.dll

因为我在这里测试的是32位系统, 所以只引入的x86的.

ts和nts的区别是. 前者是线程安全的, 后者不是线程安全的.

然后重启Apache.

使用Laravel尝试访问数据库会提示缺少ODBC Driver 11(没提示就不要管了). 点我下载

正常安装.

然后就需要开启SQL Server的远程访问了.

就是设置数据库服务器用户, 允许远程访问, RemoteAccessEnabled, RemotoDacEnabled之类的(详情请点击下面的参考)

宝宝这里测试的时候, 并没有启动SQL Server Broswer, 设置端口的时候, 只要设置IP ALL的端口为1433就可以了, 其它可以不用单独设.

好了, 我这样就连上了. 连个数据库连了一天, 宝宝也是醉.

参考:

  1. PHP+MSSQL Laravel框架下链接
  2. sql server2008 express 远程连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值