[英]PHP connection to MS SQL Server 2008 R2
我正在實現一個PHP應用程序,該應用程序必須能夠連接到MS SQL Server 2012和2008 R2。
使用此配置可以正常連接到2012
與2008 R2的連接不適用於此配置:
我收到一條錯誤消息,指出“此擴展名需要Microsoft SQL Server 2012本機客戶端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連接?
我使用的驅動程序與您不同,而是使用Mssql 。
我有一個Windows Server 2008 R2 64 bit
,這是該服務器的工作連接:
$this->dsn = 'mssql:host='.$server.';dbname='.$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();
}
老實說,我不知道有什么區別,有很多方法和驅動程序可以用來連接。
好的,事實證明,MS SQL Server 2012功能包(包含2012本機客戶端)下載頁面上的信息在某種程度上具有誤導性。
他們說:“Microsoft®SQLServer®2012 Feature Pack是獨立軟件包的集合,可為Microsoft®SQLServer®2012提供附加價值。”
這似乎暗示這些工具僅適用於MS SQL Server 2012,但事實並非如此。
如果您使用的是PHP> = 5.4,則還必須使用2012 Native Client連接到MS SQL 2008 R2。
因此,這是具有正確信息的頁面: http : //technet.microsoft.com/zh-cn/library/cc296170(v=sql.105).aspx
綜上所述
這對同時連接到MSSQL Server 2008 R2和2012均有效
免責聲明:我尚未測試php <5.4與SQL Server 2012的連接性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.