这里写自定义目录标题
- Windows下
- wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
- tar -zxvf freetds-patched.tar.gz
- cd freetds-dev.1.00.234
- ./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib
- make && make install
- cd ../
- echo "/usr/local/freetds/lib/" > /etc/ld.so.conf.d/freetds.conf
- ldconfig
- /usr/local/freetds/bin/tsql -C
- /usr/local/freetds/bin/tsql -H 数据库服务器IP -p 端口号 -U 用户名 -P 密码
- cd /usr/php-5.5.28/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 [1]: http(2).增加PHP扩展pdo的pdo_dblib
- cd /usr/php-5.5.28/ext/pdo_dblib/
- /usr/local/php/bin/phpize
- ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/
- make && make install
- cd /usr/local/php/lib下的php.ini
- killall php-fpm
- /etc/init.d/php-fpm
Windows下
1、首先查看php的信息去下载对应的sqlserver
这里我使用的php7.2版本,sqlserver扩展的下载链接:https://github.com/Microsoft/msphpsql/releases
官方sqlserver扩展下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=20098
5.x版本的sqlserver扩展下载链接:https://pan.baidu.com/s/1iXuf1ENuAmNy3F8hFAk68Q 提取码:idjm
sqlserver 对应的php版本图:
2、安装sqlserver扩展
找到phpinfo()中使用的php版本。如D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\ext,然后把我们下载的sqlserver的扩展复制在这里。如图所示:
3、修改php.ini
在php.ini中加入
extension=php_pdo_sqlsrv_72_nts.dll
extension=php_sqlsrv_72_nts.dll
然后查看phpinfo会出现sqlerv的扩展:
4、加入驱动:msodbcsql.msi(微软的odbc for sqlserver)
下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=50420
注意:这里的x86与x64是根据电脑系统判断的,不是根据php版本
4、连接sqlserver
前提是sqlserver可以外网连接。
$conn = sqlsrv_connect(‘localhost’, array(‘Database’ => ‘test’, ‘UID’ => ‘sa’ , ‘PWD’ => ‘123456’));
if( $conn == false){
var_dump(sqlsrv_errors());exit;
}
$sql = “SELECT * FROM users”;
r
e
s
u
l
t
=
@
s
q
l
s
r
v
q
u
e
r
y
(
result = @sqlsrv_query(
result=@sqlsrvquery(conn, $sql);
while (
r
e
=
@
s
q
l
s
r
v
f
e
t
c
h
a
r
r
a
y
(
re = @sqlsrv_fetch_array(
re=@sqlsrvfetcharray(result)) {
var_dump($re);
}
host一般是ip+端口,如ip,1433 。ip与端口之间用,隔开
到此windows的sqlserve链接环境就搭建好了
LINUX环境sqlerver的搭建
在windows的环境搭建比较快速简单,一到linux就比较复杂了
步骤:1、先安装Freetds 2、开启扩展pdo_dblib
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
tar -zxvf freetds-patched.tar.gz
cd freetds-dev.1.00.234
总结:FreeTDS-0.91只支持7.1,其余都会默认为5.0。只有最新的FreeTDS-0.95,也就是对Sqlserver2008的最佳配置。
./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib
make && make install
配置FreeTDS
cd …/
echo “/usr/local/freetds/lib/” > /etc/ld.so.conf.d/freetds.conf
ldconfig
验证FreeTDS版本
这一步非常重要,通过才可以继续,不然后面的步骤都是无意义的。
首先看看版本信息
/usr/local/freetds/bin/tsql -C
测试数据库是否联通
/usr/local/freetds/bin/tsql -H 数据库服务器IP -p 端口号 -U 用户名 -P 密码
3.添加PHP扩展mssql和pdo的pdo_dblib
说明:这2种扩展都可以达到相同的目的,选其一即可。
(1).增加PHP扩展mssql
cd /usr/php-5.5.28/ext/mssql/
linux下用phpize给PHP动态添加扩展
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/
make && make install [1]: http(2).增加PHP扩展pdo的pdo_dblib
cd /usr/php-5.5.28/ext/pdo_dblib/
linux下用phpize给PHP动态添加扩展
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/
make && make install
(3).在php.ini配置文件中增加.so
cd /usr/local/php/lib下的php.ini
增加:extension = “mssql.so”
extension =“pdo_dblib.so”
4).重启PHP FastCGI
killall php-fpm
/etc/init.d/php-fpm
pdo链接:
header(“Content-type: text/html; charset=utf-8”);
try {
$hostname = “172.16.15.122”;
$port = 1433;
$dbname = “myserver”;
$username = “sa”;
$pw = “azy@123”;
KaTeX parse error: Undefined control sequence: \PDO at position 11: dbh = new \̲P̲D̲O̲("dblib:host=hostname:
p
o
r
t
;
d
b
n
a
m
e
=
port;dbname=
port;dbname=dbname",“
u
s
e
r
n
a
m
e
"
,
"
username","
username","pw”);
} catch (\PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . “\n”;
exit;
}
$stmt = $dbh->prepare("select top 1 * from AlarmEvent order by armid desc");
$stmt->execute();