本文主要介绍了如何在linux下使用php语言的thinkphp5框架通过pdo_odbc的方式连接MSSQL的方案步骤:

1.下载微软官方发布的ODBC驱动包

Red Hat 5/6:https://www.microsoft.com/en-us/download/details.aspx?id=36437
SUSE 11:http://www.microsoft.com/en-us/download/details.aspx?id=34687

2.安装unixODBC 2.3.0

tar xzf msodbcsql-11.0.2270.0.tar.gz
cd msodbcsql-11.0.2270.0
./build_dm.sh

按照提示完成最终安装

cd /tmp/unixODBC.13742.22290./unixODBC-2.3.; make install

3.安装Microsoft ODBC Driver 11 for SQL Server on Linux

./install.sh install

安装完成后,可通过语句进行测试,测试语句格式如下

sqlcmd -S 192.168.1.10 -U sa -P sa -d master -Q 'select "Hello World"'

4.安装pdo_odbc,此处扩展必须要和php版本对应,如下以lnmp一键包举例说明:

cd ~/lnmp1.-full/src/
mv php-7.1..tar.bz2 ~/
cd ~
tar -jxvf php-7.1..tar.bz2
cd php-7.1./ext/pdo_odbc/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-odbc=unixODBC,/usr/
make&&make install

输出so文件路径,复制下来后粘贴到php.ini大约928行左右中

vim /usr/local/php/etc/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/pdo_odbc.so

退出重启php-fpm

/etc/init.d/php-fpm restart

5.最后在需要访问mssql的model分组中加入Base.php如下

<?php
namespace app\oa\model; use think\Model; class Base extends Model
{
protected $connection = [
// 数据库类型
'type' => 'sqlsrv',
// 数据库连接DSN配置
'dsn' => 'odbc:Driver=ODBC Driver 11 for SQL Server;Server=192.168.1.100;database=dbname;',
// 服务器地址
'hostname' => '192.168.1.100',
// 数据库名
'database' => 'dbname',
// 数据库用户名
'username' => 'sa',
// 数据库密码
'password' => 'sa',
// 数据库连接端口
'hostport' => '1433',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'gbk',
// 数据库表前缀
'prefix' => '',
];
}

在需要访问此数据的model继承自此类即可

class ClassName extends Base

需要注意mssql默认是gbk,需要做默认转码

public function getFieldValueAttr($value)
{
return iconv('gbk', 'utf-8', $value);
}

或是

public function getFieldValueAttr($value)
{
return mb_convert_encoding($value, 'UTF-8');
}

最新文章

  1. jQuery实战
  2. jquery管理ajax异步-deferred对象
  3. HTTP协议—— 简单认识TCP/IP协议
  4. iOS系统tabbar图标出现重影问题
  5. log4j常用配置以及日志文件保存位置
  6. MySql的导入与导出
  7. 现代程序设计 homework-08
  8. Windows性能监视器之CPU、硬盘、IO等监控方法详解-摘自网络
  9. C#实现在Winform中嵌入Word和Excel
  10. jdbc读取数据库图片文件
  11. 第十七篇:实例分析(1)--初探WDDM驱动学习笔记(八)
  12. calling c++ from golang with swig--windows dll 二
  13. [搬运]在C#使用.NET设计模式的新观点
  14. Windows 部署 Redis 群集(转)
  15. RxJava在Android中使用场景详解
  16. innobackupex 简单使用笔记
  17. 散列(C++实现)
  18. bzoj1912 树形dp求直径(新写法),求直径的两端点
  19. Java 基础 IO流
  20. JavaScript模板代码总结

热门文章

  1. linux 下 genymotion 模拟器不能安装app
  2. python slots源码分析
  3. 【转载】selenium with PhantomJs wait till page fully loaded?
  4. 华东师范大学第十届ECNU Coder程序设计竞赛
  5. 正排索引(forward index)与倒排索引(inverted index) (转)
  6. ntp 控制报文
  7. golang之结构体和方法
  8. javscript练习(三)
  9. loadrunner生成随机uuid的方法
  10. 久邦数码(3G门户)面试