linux下面用php7.4 连接mssql2000的方法
由于特殊原因需要使用 php7.4连接mssql2000微软官方的 odbc17 不支持 mssql2000 ,甚至odbc 最低支持mssql2008
浪费了很多时间装odbc和unixODBC以及sqlsrv,结果pdo_sqlsrv 就是用不了,一直提示odbc驱动不对
最后使用php7.4自带的pdo_dblib扩展,没想到非常简单,一步到位深度linux和centos7测试没问题,大家试试
1)需要编译安装FreeTDS
说明:推荐从官网下载最新版本 ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
# wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
# tar -zxvf freetds-patched.tar.gz
# cd freetds-dev.1.00.365
# ./configure -prefix=/usr/local/freetds -with-tdsver=7.1 -enable-msdblib
# make && make install
注意:
with-tdsver=
7.1 是mssql2000
7.2是mssql2005
7.3是mssql2008
其他自己去官网看
2)配置FreeTDS
# cd ../
# echo "/usr/local/freetds/lib/" > /etc/ld.so.conf.d/freetds.conf
# ldconfig
验证FreeTDS版本
这一步非常重要,通过才可以继续,不然后面的步骤都是无意义的。
首先看看版本信息
# /usr/local/freetds/bin/tsql -C
测试数据库是否联通
# /usr/local/freetds/bin/tsql -H 数据库服务器IP -p 端口号 -U 用户名 -P 密码
1> use db_yizuotu
2> go
3> select top 2 * from test
4> go
显示结果,恭喜了成功了一半
3)添加PHP扩展pdo_dblib
进入到你自己的源码文件夹
# cd /home/yizuotu.net/php-7.4.12/ext/pdo_dblib
linux下用phpize给PHP动态添加扩展
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/
# make && make install
4)在php.ini配置文件 最后面增加.so
extension =pdo_dblib.so
5)重启PHP FastCGI
# /etc/init.d/php-fpm restart
6)写程序测试下
<?php
ini_set("display_errors", "On");
error_reporting(E_ALL);
$dsn="dblib:host=localhost;dbname=zzzyk.com";
$PDO = new PDO($dsn,"root","123456");
$stmt = $PDO->query(" SELECT top 2 id,name FROM test ");
while ( $row = $stmt->fetch() ){
if(is_array($row)){
print_r( $row );
}
}
有结果就对了,祝你好运