【发布时间】:2014-08-07 19:04:51
【问题描述】:
我正在实现一个 PHP 应用程序,它需要能够连接到 MS SQL Server 2012 和 2008 R2。
使用此配置可以正常连接到 2012
- Windows 7 64 位
- IIS 7.5
- PHP 5.5.13
- sql srv 本机客户端 11.0
- php_pdo_sqlsrv_55_nts.dll
- php_sqlsrv_55_nts.dll
到 2008 R2 的连接不适用于此配置:
- Windows 7 64 位
- IIS 7.5
- PHP 5.4.10
- sql srv 本机客户端 10.5
- php_pdo_sqlsrv_54_nts.dll
- php_sqlsrv_54_nts.dll
我收到一条错误消息,提示“此扩展需要 Microsoft SQL Server 2012 Native Client ODBC 驱动程序才能与 SQL Server 通信。”
这是我用来连接的代码。
class my_mssql{
protected $dsn;
protected $dbh;
protected $server;
protected $user;
protected $password;
protected $colnames;
public $error;
public $resultset;
function __construct($db, $user, $password, $server='localhost'){
$this->dsn = 'sqlsrv:Server='.$server.';Database='.$db;
$this->server = $server;
$this->user = $user;
$this->password = $password;
try {
$this->dbh = new PDO($this->dsn, $user, $password);
} catch (PDOException $e) {
$this->error = $e->getMessage();
}
}
}
似乎php_pdo_sqlsrv_54_nts.dll 只支持连接到2012。我说的对吗? 另一方面,在 MS 下载页面上,他们说 PHP 驱动程序 v3.0(包含 php_pdo_sqlsrv_54_nts.dll)也应该支持 2008 R2。
我可以从 PHP 5.4 连接到 2008 R2 吗? 我是否应该以不同的方式实现 2008 R2 连接?
【问题讨论】:
标签: php sql-server pdo sql-server-2008-r2