php扩展mssql.so连接sqlserver2008

1、安装配置freetds 

wget http://mirrors.xmu.edu.cn/ubuntu/archive/pool/main/f/freetds/freetds_0.82.orig.tar.gz 
tar zxf freetds_0.82.orig.tar.gz 
cd freetds_0.82 
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 -–enable-msdblib -–enable-dbmfix -–with-gnu-ld -–enable-shared -–enable-static 
make && make install 

2、编译php的mssql模块 

cd /path/to/php/source 进入PHP源码目录 
cd ext/mssql 进入MSSQL模块源码目录 
/usr/local/webserver/php/bin/phpize 生成编译配置文件 
./configure –with-php-config=/usr/local/webserver/php/bin/php-config –with-mssql=/usr/local/freetds 
make 
make install 


编译完成生成 mssql.so,修改php.ini,将该模块载入: 
extension=”/path/to/extension/mssql.so” 

3、配置mssql 

cd /usr/local/freetds/etc 
编辑文件: 
vi freetds.conf 
[global] 
# TDS protocol version 
; tds version = 4.2 
# Whether to write a TDSDUMP file for diagnostic purposes 
# (setting this to /tmp is insecure on a multi-user system) 
; dump file = /tmp/freetds.log 
; debug flags = 0xffff 
# Command and connection timeouts 
; timeout = 10 
; connect timeout = 10 
# If you get out-of-memory errors, it may mean that your client 
# is trying to allocate a huge buffer for a TEXT field. 
# Try setting ‘text size' to a more reasonable limit 
text size = 64512 
client charset = UTF-8 #加入 
#加入 
[Server2005] 
host = 192.168.x.x 
port = 1433 
tds version = 7.2 

4、测试tds

./tsql -S 192.168.0.109 -U 用户名 -P 密码 -D 数据库
如果可以有看到1>说明连接成功

5、测试php连接mssql 

复制代码代码如下:

<?php 
try { 
$hostname='218.x.x.x';//注意,这里和上面不同,要直接用IP地址或主机名 
$port=1433;//端口 
$dbname="user";//库名 
$username="database";//用户 
$pw="passwd";//密码 
$dbh= new PDO("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw"); 
} catch (PDOException $e) { 
echo"Failed to get DB handle: ".$e->getMessage() ."n"; 
exit; 

echo'connent MSSQL succeed'; 
$stmt=$dbh->prepare("select * from z_2010pinjiu_user"); 
$stmt->execute(); 
while ($row=$stmt->fetch()) { 
print_r($row); 

unset($dbh); unset($stmt); 
?> 
 
原文地址:https://www.cnblogs.com/cmsd/p/3799999.html