使用PHP+FreeTDS在Linux下连接MS SQLServer数据库

来源:互联网 发布:cf审判无影腿编程 编辑:程序博客网 时间:2024/04/29 21:34

网站服务器要换Linux平台,然而由于种种原因吧,数据库还是得沿用老的MS SQLServer,而以前在windows下PHP是使用的MSSQL扩展库php_mssql.dll连接的(即添加extension=php_mssql.dll 到 php.ini文件即可)。查看PHP官方手册得知,如果要想在Linux下使用MSSQL函数的功能,则必须使用第三方的软件。这里我使用的是PHP手册上推荐的FreeTDS扩展库,下载在http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/
首先安装freetds
#tar -xzvf freetds-0.63RC10.tar.gz
#./configure --enable-msdblib --prefix=/usr/local/freetds
#make
#make install

配置freetds
#cd /usr/local/freetds
#vi etc/freetds.conf

修改以下的一段,并把;去掉
改好之后的内容:
[MyServer2k]
host=192.168.27.20
port=1433
tds version=8.0

其中的[MyServer2k]代表在客户端使用的服务器名称,host代表SQLServer服务器的IP地址,port代表端口
测试连接
#bin/tsql -S MyServer2k -H 192.168.27.20 -p 1433 -U sa -P sa
1> use tbit_mcp
2> go
1> select count(*) from t_service
4
1> quit
通过上面的操作,我们发现已经可以在Linux下访问MS的数据库咯
现在来说明以下这些参数的作用,-S MyServer2k是在freetds.conf中定义好的,-H 192.168.27.20服务器IP地址,和freetds.conf中的一致,如果使用了-S参数,这个参数可以不用,-p 1433用来指定端口是1433 ,–U sa用来指定连接数据库的用户名,-P sa用来指定连接数据库的密码。

这样FreeTDS就配置完毕了
接着下载安装php
http://cn2.php.net/get/php-4.3.10.tar.gz/from/a/mirror
php-4.3.10.tar.gz
使用tar命令解压
#tar -xzvf  php-4.3.10.tar.gz
#cd php-4.3.10
#./configure --with-mysql --with-apxs2=/www/bin/apxs --with-mssql=/usr/local/freetds
#make
#make install

注:--with-mssql=后面是tds的安装路径

重新运行apache,设置连接数据库的PHP页面如下
# vi dbconn.php

<?php
$hostname = "192.168.27.20:1433"; //MSSQL Server,注意一定要注明1433端口号,否则将无法连接
$dbuser = "sa"; //用户名
$dbpasswd = "sa"; //密码
$gPageSize= 3; //每页显示的记录数

//连接数据库
$db_id = mssql_connect($hostname,$dbuser,$dbpasswd) or die("无法连接数据库服务器!");
$db = mssql_select_db("tbit_mcp",$db_id) or die("无法连接数据库!");

//执行查询语句
$query = "select * from t_service order by service_id DESC";
$result = mssql_query($query);

……其它我就不再多写了,这样我们就可以在Linux环境下使用PHP+FreeTDS访问MS SQLServer数据库啦!