簡體   English   中英

與MS SQL Server 2008 R2的PHP連接

[英]PHP connection to MS SQL Server 2008 R2

我正在實現一個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本機客戶端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

綜上所述

  • PHP <5.4使用2.0驅動程序(Native Client 2008)
  • PHP> = 5.4使用3.0驅動程序(Native Client 2012)

這對同時連接到MSSQL Server 2008 R2和2012均有效

免責聲明:我尚未測試php <5.4與SQL Server 2012的連接性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM