最近做一个项目,采用了Thinkphp6框架,因为要支持调用dll动态库,使用了php7.4的ffi新功能(见文章:《php7.4使用FFI连接C语言的动态库》),但是项目连接的数据库是SQL Server2000,这是一个很老的项目,所以使用了这个版本的数据库(就目前来说我也喜欢SQL Server2000,下载了一个绿色版解压缩运行后整个目录才137MB)。
然而在php里怎么连接这个数据库呢?Thinkphp6内置了Sqlsrv的支持,只要配置config目录里的database.php即可。但是我最开始采用的是pdo调用php_sqlsrv_74_ts_x86和php_pdo_sqlsrv_74_ts_x86,这种方式太新了,还需要安装一个ODBC驱动,可是这个驱动最低版本是11,11版也只能支持SQL Server2005版以及更新版本,并不支持SQL Server2000.
后来继续各种百度,发现用pdo_odbc连接数据库,就可以避免安装这个驱动了,因为odbc可以指定我采用哪个odbc驱动,而我的电脑里默认就安装了odbc,运行里输入odbcad32回车,就看到如下画面:

可以看到自带的驱动名称为SQL Server,那么database.php里的connections数组增加一个配置:

        'sqlserver' => ['type'     => 'sqlsrv','dsn'      => 'odbc:Driver={SQL Server};Server=127.0.0.1,7788;Database=data_db','username' => 'xxxx','password' => 'xxxx',],

启用php.ini里的extension=pdo_odbc(注意低版本的php可能配置写成了extension=php_pdo_odbc.dll,检查php的ext目录的确有这个文件,如果是linux,可以安装这个扩展)。
重启apache,按照Thinkphp的规则写代码,即可访问:

<?php
namespace app\model;class Test extends \think\Model
{protected $connection = 'sqlserver';}//如下可以获取,代码自己组织:
function UTF8($gbkString) {return iconv('GB18030', 'UTF-8', $gbkString);
}
try {$rows = \app\model\Test::select()->toArray();foreach ($rows as $key => $row) {echo UTF8($row['name']) . ' ';}
} catch (\Exception $e) {return UTF8($e->getMessage());
}

Thinkphp6使用pdo_odbc连接SQL Server2000相关推荐

  1. java sqlserver2000_用Java连接SQL Server2000数据库

    用Java连接SQL Server2000数据库有多种方法,下面介绍其中最常用的两种(通过JDBC驱动连接数据库).以及连接池.[@more@] 用Java连接SQL Server2000数据库有多种 ...

  2. 无法连接到远程的SQL SERVER2000

    1.先保证ping通        2.在dos下写入telnet     ip     1433不会报错            3.用ip连如企业管理器:        企业管理器-->右键S ...

  3. Vista SP1、IIS7,安装ASP.Net 1.1、VS2003、NetAdvantage 2004vol、Sql Server2000全攻略

    对于微软的软件,一向认为是:beta版惨不忍睹,rtm版马马虎虎,sp1版.所以,现在Vista SP1出来了,我也考虑更换操作系统了.经过一番google,唯一的问题应该就在于ASP.Net 1.1 ...

  4. java 连接sql_java 连接sql server2008数据库配置

    1.首先要去Microsoft官网下载sqljdbc2.0驱动--Microsoft SQL Server JDBC Driver 2.0.exe,很小大概就4M,解压后里面有2个Jar包,sqljd ...

  5. JAVA连接SQL server

    2019独角兽企业重金招聘Python工程师标准>>> 大学时的笔记.整理一下,sql server是大学课程里的教学数据库,所以之前一直都在用java连接sql Server 对于 ...

  6. windows xp下如何安装SQL server2000企业版

    [转自] http://www.xici.net/u15162693/d80638995.htm windows xp下如何安装SQL server2000企业版 SQL2000企业版本适用于WIN ...

  7. 搭建WAMP5环境,连接SQL Server2005数据库问题汇总

    经过两周的测试.修改,终于将网上药品采购系统从公司内部OA系统中独立出来,用WAMP5重新搭建了PHP网上药品采购系统.现将遇到的问题汇总如下: 1.数据库连接失败的问题,提示 Fatal error ...

  8. Excel2003配置为SQL Server2000的【链接服务器】

    Excel2003配置为SQL Server2000的[链接服务器] 现在进行的工作是用vb和sql server2000管理公司的仓库.今天接到一张xsl的库存表,记录量非常大.首先的是用sql s ...

  9. SQL Server2000打开1433端口

    这篇文章主要针对Win2003系统安装SQL Sever2000后1433端口未开放,如何打开1433端口的解决方法. 用了几年的Windows2003和SQL Server2000了,不过这个问题倒 ...

最新文章

  1. iphone照片永久删除怎么恢复_怎么恢复删除的照片?专业数据恢复软件轻松搞定...
  2. 笔试分享 | 带你解读校招人工智能笔试题
  3. DL之DNN优化技术:神经网络算法简介之GD/SGD算法的简介、代码实现、代码调参之详细攻略
  4. matlab上位机串口通信,MATLAB GUIDE 上位机串口通信开发 绘制图形
  5. FTP连接时出现“227 Entering Passive Mode”的解决方法
  6. 前n个正整数相乘的时间复杂度为_初一数学上期末|21个考点全面讲解,收藏了复习一遍,期末高分不愁!...
  7. [原] 求薪水第三高的雇员的SQL题(图解)
  8. centos 安装LibreOffice word转PDF导出
  9. 自动与时间服务器时间同步,Windows系统时间同步(附时间同步服务器地址)
  10. linux 脚本加密工具下载,linux truecrypt 加密工具
  11. python求幂集_求幂集的算法 - Sethylar的个人页面 - OSCHINA - 中文开源技术交流社区...
  12. RAID磁盘阵列与配置(详细)
  13. java源程序的文件名必须与,Java源程序的文件名一定要与文件中某个类的名称一致。()...
  14. 【JavaWeb】最详细的小白笔记!!!
  15. 【小资生活】话剧——无人生还
  16. ffmpeg录制视频时添加时间水印
  17. layui后台管理首页配置
  18. Android设备使用libusb和usb声卡
  19. 卡尔曼滤波与组合导航原理_图解卡尔曼滤波器,无需深厚的数学知识也易懂(第五部分:多维卡尔曼滤波器)...
  20. boonton 功率测试软件,教你使用功率计及功率分析仪测试

热门文章

  1. sysbios挂钩函数使用_使用动作挂钩自定义WordPress主题
  2. 产品健康度模型(4) 打分I
  3. 归因分析计算因子贡献度常见的方法
  4. 超级记忆法(5)——第三小时
  5. 【快乐手撕LeetCode题解系列】——消失的数字
  6. SIGIR2020|基于自注意力机制和多鉴别器的序列推荐
  7. 【雨滴降落的速度是每秒10米】
  8. [WinForm]写一个小程序把指定目录的程序添加到开机自动启动(无法绕过360检查)
  9. Rule of lawlessness 南非法治之战 | 经济学人中英双语对照精读笔记
  10. C++的Json解析库:jsoncpp