当前位置:编程学习 > php >>

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 );
    }


有结果就对了,祝你好运 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,