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设计思想访问对应控制器下的对应方法,那么就无从下手了.我这里参考网上的例子在自己的服 ...
随机推荐
- Django【设计】同功能不同实现模式的兼容性
需求: 当我们采集硬件信息时,客户端可以有多种方式,具体方式取决于客户机,CMDB项目中,我们有三种方式可选,AGENT/SSH/SALT,根据客户机具体情况和“SALT>>SSH> ...
- (正则表达式)linux shell 字符串操作(长度,查找,替换,匹配)详解
在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略 ...
- curl 发送请求的时候报错
AWS HTTP error: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see ...
- [ python ] 各种推导式
各种推导式,主要使用示例演示用法 列表生成式 示例1:求0-9每个数的平方 li = [x*x for x in range(10)] print(li) # 执行结果: # [0, 1, 4, 9, ...
- MySQL 和 Oracle 主键自增长
1.MySQL 1)建表 auto_increment:每插入一条数据,客户表(customers)的主键id就自动增1,如下所示 create table customers -- 创建客户表 ( ...
- Char 与 Byte
var c: Char; b: Byte; begin c := 'A'; ShowMessage(c); //A b := ; ShowMessage(IntToStr(b)); c := Chr( ...
- Perl 连接Oracle 出现OCI missing的问题及解决
问题描述 新申请了一个虚拟机操作系统: Win Server 2008, 64位 , 8核, 16G Memory 上 http://www.activestate.com/activeperl 下载 ...
- hdu 5001(概率DP)
Walk Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- <<Javascript Patterns>>阅读笔记 -- 第2章 基本技巧(二)
关于for-in循环 循环数据时, 强烈不推荐使用for-in循环.因为当Array对象被扩展后, 再用for-in循环遍历数据会导致逻辑上的错误, 举例说明: var arr = ['a', 'b' ...
- 自动化测试框架Cucumber和Robot Framework的实战对比
自动化测试框架Cucumber和RobotFramework的实战对比 一.摘要 自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本:同时它需要拥有专业开发技能的人才能完成开发,且需要大量 ...