这篇文章给大家介绍的内容是关于laravel5通过freetds连接sqlserver,有一定的参考价值,希望可以帮助到有需要的朋友。
相关版本
系统ubuntu 16.04, 使用的PHP版本是7.0.30, sqlserver 2012, freetds为0.92 Laravel5.5和5.4都测试过了
安装php驱动
1 2 | sudo apt-get install php7.0-odbc
sudo apt install php7.0-sybase
|
登录后复制
安装freetds
1 2 3 | 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
1 | sudo vim /etc/freetds/freetds.conf
|
登录后复制
修改配置
1 2 3 4 5 6 7 8 | [ global ]
tds version = 8.0 # TDS version, ref <a href= "http://www.freetds.org/userguide/choosingtdsprotocol.htm" target= "_blank" >this</a>.
client charset = UTF-8
text size = 20971520
[Server2012] #自定义名称,后面需要使用
host = {yourdomain}.database.windows.net
port = 1433
tds version = 8.0 #8.0为2012其他自行测试
|
登录后复制
测试SQLSERVER
1 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 | 'mssql' => [
'driver' => 'sqlsrv' ,
'host' => 'Server2012' ,
'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写连接了.
Laravel框架中Echo的使用过程
以上是laravel5如何通过freetds来连接到sqlserver(代码)的详细内容。更多信息请关注PHP中文网其他相关文章!