• 售前

  • 售后

热门帖子
入门百科

laravel5使用freetds毗连sql server的方法

[复制链接]
亲亲阳光非 显示全部楼层 发表于 2021-10-26 13:24:21 |阅读模式 打印 上一主题 下一主题
相关版本

体系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驱动
  1. sudo apt-get install php7.0-odbc
  2. 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
  1. 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
  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. '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中 参加
  1. protected $connection = 'mssql';
复制代码
并利用
  1. protected $table = 'EMPLOYEE';
复制代码
指明数据表,就可以不消每次在Controller写连接了.
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有肯定的参考学习代价,假如有疑问大家可以留言交换,谢谢大家对脚本之家的支持。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作