在linux 下的php连接mssql,就需要安装第三方的freetds了。
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
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、测试php连接mssql
-
<?php
-
-
try {
-
-
$hostname='218.x.x.x';
-
$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);
-
-
?>
-
(责任编辑:IT) |