php7 freetds,laravel5通过freetds连接sqlserver

相关版本

系统ubuntu 16.04, 使用的PHP版本是7.0.30, sqlserver 2012, freetds为0.92 Laravel5.5和5.4都测试过了

安装php驱动

sudo apt-get install php7.0-odbc

sudo apt install php7.0-sybase

安装freetds

sudo apt-get install freetds-bin freetds-common tdsodbc odbcinst unixodbc unixodbc-dev

sudo mv /etc/odbcinst.ini /etc/odbcinst.ini.bak

sudo cp /usr/share/tdsodbc/odbcinst.ini /etc/

配置freetds

sudo vim /etc/freetds/freetds.conf

修改配置

[global]

tds version = 8.0 # TDS version, ref this.

client charset = UTF-8

text size = 20971520

[Server2012] #自定义名称,后面需要使用

host = {yourdomain}.database.windows.net // ip地址或域名

port = 1433

tds version = 8.0 #8.0为2012其他自行测试

测试SQLSERVER

TDSVER=8.0 tsql -H my_server_host -p 1433 -U my_user -P my_password -D my_database

配置Laravel5

打开config/database.php在connections中添加配置,驱动使用sqlsrv

'mssql' => [

'driver' => 'sqlsrv',

'host' => 'Server2012', // 这个对应freetds.conf的配置名称

'port' => '1433',

'database' => env('DB_DATABASE', '数据库'),

'username' => env('DB_USERNAME', '用户'),

'password' => env('DB_PASSWORD', '密码'),

'charset' => 'utf8',

'collation' => 'utf8_unicode_ci',

'prefix' => '',

'strict' => false,

'engine' => null,

],

多数据库

如果你用了mysql又想用sqlserver的部份信息,个人项目原因,但一般的做法是sqlserver的系统写API让Mysql系统的调用,但这次偷偷懒,就两个一起用了

在Model中 加入protected $connection = 'mssql';并使用protected $table = 'EMPLOYEE'; 指明数据表,就可以不用每次在Controller写连接了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值