LNMP包环境下使用TP5框架通过ODBC连接MSSQL方案
2024-10-19 02:28:53
本文主要介绍了如何在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');
}
最新文章
- jQuery实战
- jquery管理ajax异步-deferred对象
- HTTP协议—— 简单认识TCP/IP协议
- iOS系统tabbar图标出现重影问题
- log4j常用配置以及日志文件保存位置
- MySql的导入与导出
- 现代程序设计 homework-08
- Windows性能监视器之CPU、硬盘、IO等监控方法详解-摘自网络
- C#实现在Winform中嵌入Word和Excel
- jdbc读取数据库图片文件
- 第十七篇:实例分析(1)--初探WDDM驱动学习笔记(八)
- calling c++ from golang with swig--windows dll 二
- [搬运]在C#使用.NET设计模式的新观点
- Windows 部署 Redis 群集(转)
- RxJava在Android中使用场景详解
- innobackupex 简单使用笔记
- 散列(C++实现)
- bzoj1912 树形dp求直径(新写法),求直径的两端点
- Java 基础 IO流
- JavaScript模板代码总结