laravel5使用freetds连接sql server的方法
相关版本
系统ubuntu16.04,使用的PHP版本是7.0.30,sqlserver2012,freetds为0.92Laravel5.5和5.4都测试过了
什么是FreeTDS
简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库!FreeTDS是一个开源的程序库,是TDS(表列数据流)协议的再次实现。它可以被用在Sybase的db-lib或者ct-lib库。它也包含一个ODBC的库。允许许多开源的应用软件比如Perl和PHP(或者你自己的c或C++程序)去连接到Sybase或MicrosoftSQL服务器。FreeTDS以源码的形式被发布,几乎可以在任何操作系统上编译。意味着Unix和类Unix系统(包括著名的分支如Interix和QNX),还有Win32,VMS,和OSX。
本文将给大家详细介绍laravel5使用freetds连接sqlserver的相关内容,下面话不多说了,来一起看看详细的介绍吧
步骤如下
安装php驱动
sudoapt-getinstallphp7.0-odbc sudoaptinstallphp7.0-sybase
安装freetds
sudoapt-getinstallfreetds-binfreetds-commontdsodbcodbcinstunixodbcunixodbc-dev sudomv/etc/odbcinst.ini/etc/odbcinst.ini.bak sudocp/usr/share/tdsodbc/odbcinst.ini/etc/
配置freetds
sudovim/etc/freetds/freetds.conf
修改配置
[global] tdsversion=8.0#TDSversion,refthis. clientcharset=UTF-8 textsize=20971520 [Server2012]#自定义名称,后面需要使用 host={yourdomain}.database.windows.net//ip地址或域名 port=1433 tdsversion=8.0#8.0为2012其他自行测试
测试SQLSERVER
TDSVER=8.0tsql-Hmy_server_host-p1433-Umy_user-Pmy_password-Dmy_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写连接了.
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。