这种方式是比较纠结的,没有哪个公司在开始时就设计成这个样子的,这是公司技术架构转型时要面对的,是临时的无奈之举

一、在linux下用php连接ms sql server 2000:

需要freetds工具,官方网址:www.freetds.org
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz
tar zxvf freetds-0.91.tar.tgz
cd freetds-0.91
./configure --prefix=/usr/local/freetds
make
make install
修改/usr/local/freetds/etc/freetds.conf
[global]
        tds version = 8.0 #这个是必须设置的,版本过低的话会出现连接不上sqlserver
        client charset = UTF-8 #设置客户端编码,出现乱码时需要根据web页面设置,也可转码解决,编码为大写
        text size = 64512
[egServer50]
        host = symachine.domain.com
        port = 5000
        tds version = 5.0
[egServer70]
        host = ntmachine.domain.com
        port = 1433
        tds version = 7.0
我们用freetds提供的命令测试连接
/usr/local/freetds/bin/tsql -H 192.168.18.100 -p 1433 -U sa -P sa
[root@vm3 freetds]# /usr/local/freetds/bin/tsql -H 192.168.18.100 -p 1433 -U sa -P sa
locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "
UTF-8"
1> use test
2> go
1> select * from [dbo].[mess]
2> go
id            name
1             你好
(1 row affected)
1> quit


下载php源码,官方网址:php.net
wget http://cn2.php.net/get/php-5.3.21.tar.bz2/from/this/mirror
tar jxvf php-5.3.21.tar.bz2
cd php-5.3.21
./configure --prefix=/usr/local/php --enable-fpm  --with-mssql=/usr/local/freetds
make -j 4
make install

nginx的安装很简单,在此略

查看freetds模块是否加载,创建一个php文件:
phpinfo();

通过web访问,看是否有mssql模块
写个测试数据库连接的php文件
cat mssql.php
ini_set('display_errors','on');
error_reporting(E_ALL);
header('Content-Type:text/html;charset=utf8');
$link = mssql_connect('192.168.18.100:1433','sa','sa');
mssql_select_db('test');
$sql = "select * from [dbo].[mess]";
$res = mssql_query($sql);
$data = mssql_fetch_assoc($res);
var_dump($data);
mssql_close();
好了,顺利获取了sqlserver数据

二、在windows下用php连接 sql server 2000:

也是利用freetds,但是是在windows下编译的动态连接库dblib.dll
本例使用的是php5.3.8 "Thread Safe(TS)" "VC9",一般 php5.2.x 使用的是 VC6,php5.3.x 使用的是 VC9
系统需要安装 .NET Framework v1.1 从 这里 或下载动态链接库从 这里
下载地址:http://download.moodle.org/download.php/dblib/php53/DBLIB_TS.zip
解压缩  DBLIB_TS.zip,将解压出来的 php_dblib.dll 放到php的ext目录下,并编辑 php.ini 配置文件,加入这个动态链接库文件:extension=php_dblib.dll
并注释 (禁用) 掉 php_mssql.dll,即 ; extension= php_mssql.dll
接下来需要在 php 安装根目录下创建一个配置文件 freetds.conf,内容如下:
[global]
         host = 192.168.18.100 (host name or ip of the MSSQL server)
         port = 1433
         client charset = UTF-8
         tds version = 8.0
         text size = 20971520


未完,待续。