当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel5使用freetds连接sql server的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-02 10:16:15 浏览: 评论:0 

这篇文章主要给大家介绍了关于laravel5使用freetds连接sql server的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

相关版本

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

什么是FreeTDS 

简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库! FreeTDS 是一个开源的程序库,是TDS(表列数据流 )协议的再次实现。它可以被用在Sybase的db-lib或者ct-lib库。它也包含一个ODBC的库。允许许多开源的应用软件比如Perl和PHP(或者你自己的c或C++程序)去连接到Sybase或 Microsoft SQL服务器。FreeTDS 以源码的形式被发布,几乎可以在任何操作系统上编译。意味着Unix和类Unix系统(包括著名的分支如Interix和QNX),还有Win32,VMS,和OSX。

本文将给大家详细介绍laravel5使用freetds连接sql server的相关内容,下面话不多说了,来一起看看详细的介绍吧

步骤如下

安装php驱动

sudo apt-get install php7.0-odbc

sudo apt install php7.0-sybase

安装freetds

  1. sudo apt-get install freetds-bin freetds-common tdsodbc odbcinst unixodbc unixodbc-dev  
  2. sudo mv /etc/odbcinst.ini /etc/odbcinst.ini.bak  
  3. sudo cp /usr/share/tdsodbc/odbcinst.ini /etc/ 

配置freetds

sudo vim /etc/freetds/freetds.conf

修改配置

  1. [global
  2.  tds version = 8.0 # TDS version, ref <a href="http://www.freetds.org/userguide/choosingtdsprotocol.htm" rel="external nofollow" target="_blank">this</a>. 
  3.  client charset = UTF-8 
  4.  text size = 20971520 
  5. [Server2012] #自定义名称,后面需要使用 
  6.  host = {yourdomain}.database.windows.net // ip地址或域名 
  7.  port = 1433 
  8.  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

  1. 'mssql' => [ 
  2.  'driver' => 'sqlsrv'
  3.  'host' => 'Server2012'// 这个对应freetds.conf的配置名称 
  4.  'port' => '1433'
  5.  'database' => env('DB_DATABASE''数据库'), 
  6.  'username' => env('DB_USERNAME''用户'), 
  7.  'password' => env('DB_PASSWORD''密码'), 
  8.  'charset' => 'utf8'
  9.  'collation' => 'utf8_unicode_ci'
  10.  'prefix' => ''
  11.  'strict' => false, 
  12.  'engine' => null, 
  13. ], 

多数据库

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

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

Tags: laravel5 freetds server

分享到: