昨天需要用到php5.6链接sqlserver2012服务器,iis服务器,网上查了一些资料现整理如下
首先PHP5.6并未提供链接sqlserver的扩展,需要到微软下载相应版本的PHP链接sqlserver的驱动扩展,php5.6对应的是
- Version 3.2 supports PHP 5.6, 5.5, and 5.4 on Windows
https://www.microsoft.com/en-us/download/details.aspx?id=20098
放到php文件夹下/ext扩展文件夹里.并在php.ini中将扩展启用,我的是5.6 线程安全版本
php.ini中增加
extension=php_pdo_sqlsrv_56_ts.dll
extension=php_sqlsrv_56_ts.dll
但是由于微软提供的扩展只支持32位PHP版本的,可是我的是64位.....怎么办?
还好有国外大牛解决了这个问题,提供php64位版本的扩展,热心的小伙伴已经提供了分享http://pan.baidu.com/s/1dDIRpJF
好,这个问题解决了,phpinfo里面也有了sqlsrv的信息,但是,还是连不上,查资料后得知我的服务器程序和数据库并不在一起...并且程序服务器并没有装sqlserver 如果需要连接sqlserver还需要在程序服务器上安装一个 SQL Server 2012 Native Client (我的sqlserver数据库是 sqlserver2012)...好吧,装上之后终于连接上了
附上语法
$dsn = 'sqlsrv:Database=databasename;Server=xxx.xxx.xxx.xxx,1433';
$user = 'xxx';
$password = 'xxx';
try {
$db = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
date_default_timezone_set('PRC');
$db->query("SET NAMES UTF8");
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$sql="select xxxxxx";
$db->query($sql);