LNMP包环境下使用TP5框架通过ODBC连接MSSQL方案
本文主要介绍了如何在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');
}
LNMP包环境下使用TP5框架通过ODBC连接MSSQL方案的更多相关文章
- Maven环境下搭建SSH框架
© 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Maven:3.3.9 Struts2:2.5.10 Spring:4.3.8.RELEASE Hibernate:5.1.7.Fina ...
- Maven环境下搭建SSH框架之Spring整合Hibernate
© 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Spring:4.3.8.RELEASE Hibernate:5.1.7.Final MySQL:5.7.17 注意:其他版本在某些特性 ...
- windows环境下安装yaf框架
windows环境下安装yaf框架 在windows下安装yaf框架 准备工作: php环境(过程略,wamp,xampp,phpstudy都行,php版本大于5.3) git工具(需要从github ...
- windows环境下安装scrapy框架报错问题--最快捷有效的解决方案
windows在执行如下命令,安装scrapy的过程中会报错: pip install scrapy 报错分析: windows环境下,会出现如下错误: 1.提示的错误是编译环境的问题,字面意思看需要 ...
- Windows环境下,本地Oracle创建dblink连接远程mysql
前言 我的情况是,本地安装了oracle(安装完成后带有SQL Developer,不需要再安装instantclient),创建dblink去连接远程的mysql.有些朋友可能是 本地使用PL\SQ ...
- Docker环境下的Mysql8 实现主从数据库数据同步方案
本文记录下通过MySQL Replication在Docker环境下,通过多个容器 实现数据库主从配置. MySQL Replication就不多解释了,简单说就是MySQL非常出色的一个功能,该功能 ...
- XAMPP环境下配置Phalcon框架
目前环境:win7 xampp 从phalcon 官网下载如下包:https://phalconphp.com/en/download/windows phalcon_x86_vc11_php5.6 ...
- Maven环境下搭建SSH框架之Spring整合Struts2
© 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Struts2:2.5.10 Spring:4.3.8.RELEASE 注意:其他版本在某些特性的使用上可能稍微存在差别 2.准备工作 ...
- Centos6环境下CI(CodeIgniter)框架创建定时任务
在我们项目开发过程中,经常遇到定时类需求,如果是仅仅一个PHP文件,那么很轻松的知道该怎么配置,但是在框架中,mvc设计思想访问对应控制器下的对应方法,那么就无从下手了.我这里参考网上的例子在自己的服 ...
随机推荐
- 执行impdp时出现的各种问题
1.不同的表空间,不同的用户,不同的表名 impdp ODS_YYJC_BUF_ZB/ODS_YYJC_BUF_ZB job_name=bs3 directory=EXPDMP exclude=OBJ ...
- yum和head一起用,报错“由于管道被破坏而退出”
当要打印 [yum list ]时, 加上了管道符 以及 head 会出现报错 “由于管道被破坏而退出” 是因为 yum 与 head 连用 存在bug ,如果使用tail 则没有出现 具体什么bug ...
- EL(表达式)语言的几种运算符
1.EL的基本语法 (1)EL表达式语法:以${开头,以}结束,中间为合法的表达式,具体语法格式如下: ${expression} (2)参数说明:Expression:指定要输出的内容,可以是字符串 ...
- Visual Tracking with Fully Convolutional Networks
http://blog.csdn.net/carrierlxksuper/article/details/48918297 传统的跟踪方法依赖低维的人工特征,但这种特征对目标的外观变化等问题不够鲁棒. ...
- hdu 1847(SG函数,巴什博弈)
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- 为nginx配置https并自签名证书
一.把证书准备好. 步骤与使用OpenSSL自签发服务器https证书所述大同小异.在这里再重复一次. 1.制作CA证书: ca.key CA私钥: openssl genrsa -des3 -out ...
- java中Property类的基本用法
1 配置.properties文件 2 获取输入流的方法 1)FileInputStream fi = new FileInputStream(properties文件路径); 2)InputStre ...
- 【LOJ】#2133. 「NOI2015」品酒大会
题解 想出了一个神奇的技巧 我们先把串反过来(因为我们需要起始位置的值而不是终止位置的值),每个点维护一下 fail树上子树里的点,作为正数绝对值最大的两个数,作为负数绝对值最大的两个数 我们发现这个 ...
- 什么是APS高级计划排程(生产计划排产)系统主要功能模块有哪些?
什么是APS高级计划排程(生产计划排产)系统? APS高级计划排程(高级计划排产)系统主要解决“在有限产能条件下,交期产能精确预测.工序生产与物料供应最优详细计划”的问题.APS高级计划排程(高级计划 ...
- 删除 list 集合中的元素
删除 list 集合中的元素,当删除的元素有多个的时候,只能使用迭代器来删除. 当删除 list 集合中的元素只有一个的时候,有三种方法都可以实现. import java.util.ArrayLis ...