相关版本
系统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 <a href="https://zhishitu.com/ke" target="_blank">this</a>.    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写连接了.
相关推荐:
以上就是laravel5如何通过freetds来连接到sqlserver(代码)的知识。速戳>>知识兔学习精品课!
