PHP使用FreeTDS连接MS SQL Server

FreeTDS是一个帮助linux和Unix用户连接MS SQL Server和Sybase的开源项目。常用于linux和Unix平台上的web server将上述两种数据库的数据展示在网站中。从技术层面上讲FreeTDS实现了Tabular Data Stream protocol,也因此得名。Tabular Data Stream protocol用于在数据库服务器和客服端间传输数据,由Sybase公司设计和开发并最先使用于Sybase关系数据库中,后来MS SQL Server也使用了这一协议。

要使PHP支持FreeTDS,有三种API可以选择:db-lib,ct-lib和ODBC。

1、编译安装FreeTDS

./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
make && make install
cd ../

echo "/usr/local/freetds/lib/" > /etc/ld.so.conf.d/freetds.conf
ln -s /usr/local/freetds/lib/libsybdb.so.5.0.0 /usr/local/freetds/lib/libsybdb.so.4
/sbin/ldconfig

添加mssql数据库服务器参数以及charset:

vi /usr/local/freetds/etc/freetds.conf

2、编译安装PHP自带MSSQL扩展
进入本地已存在的php-5.2.XX源码包目录:

cd /data0/software/php-5.2.XX/ext/mssql/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/
make && make install



3、在php.ini配置文件中增加mssql.so

vi /usr/local/php/etc/php.ini


增加一行:

extension = "mssql.so"



4、重启PHP FastCGI

/usr/local/php/sbin/php-fpm restart



5、测试文件(test_mssql.php):

<?php  
header("Content-type: text/html; charset=utf-8");  
$msdb=mssql_connect("mssql.yourdomain.com:1433","username","password");  
if (!$msdb) {  
        echo "connect sqlserver error";  
        exit;  
}  
mssql_select_db("database_name",$msdb);  
$result = mssql_query("SELECT top 5 * FROM table", $msdb);  
while($row = mssql_fetch_array($result)) {  
        var_dump($row);  
}  
mssql_free_result($result);  
?>  


posted @ 2011-07-03 18:50  Knowledge Base  阅读(1097)  评论(0编辑  收藏  举报