2024 PHP Conference Japan

Microsoft SQL Server 函式 (PDO_SQLSRV)

簡介

PDO_SQLSRV 是一個驅動程式,它實作了 PHP 資料物件 (PDO) 介面,以便從 PHP 存取 MS SQL Server(從 SQL Server 2005 開始)和 SQL Azure 資料庫。

安裝

最新版的驅動程式可在此處下載:» SQLSRV 下載。驅動程式原始碼託管於» 公開儲存庫中。

如需系統需求的詳細資訊,請參閱» SQLSRV 系統需求

在 Windows 上,PDO_SQLSRV 擴充功能可透過下載適當的 DLL 檔案並將其新增至 PHP 擴充功能目錄,以及在 php.ini 檔案中新增對應的項目來啟用。

在 Linux 和 macOS 上,可以使用 » PECL 安裝 PDO_SQLSRV 擴充功能。詳情請參閱» 安裝教學

預先定義的常數

以下常數由這個驅動程式定義,並且只有在擴充功能已編譯到 PHP 中或在執行階段動態載入時才可用。此外,這些驅動程式特定的常數應該只在您使用此驅動程式時使用。將驅動程式特定屬性與其他驅動程式一起使用可能會導致非預期的行為。可以使用 PDO::getAttribute() 來取得 PDO::ATTR_DRIVER_NAME 屬性以檢查驅動程式,如果您的程式碼可以在多個驅動程式上執行。

PDO::SQLSRV_TXN_READ_UNCOMMITTED (int)
此常數是 SQLSRV DSN 索引鍵 TransactionIsolation 的可接受值。此常數將連線的交易隔離等級設定為「讀取未提交」。
PDO::SQLSRV_TXN_READ_COMMITTED (int)
此常數是 SQLSRV DSN 索引鍵 TransactionIsolation 的可接受值。此常數將連線的交易隔離等級設定為「讀取已提交」。
PDO::SQLSRV_TXN_REPEATABLE_READ (int)
此常數是 SQLSRV DSN 索引鍵 TransactionIsolation 的可接受值。此常數將連線的交易隔離等級設定為「可重複讀取」。
PDO::SQLSRV_TXN_SNAPSHOT (int)
此常數是 SQLSRV DSN 索引鍵 TransactionIsolation 的可接受值。此常數將連線的交易隔離等級設定為「快照」。
PDO::SQLSRV_TXN_SERIALIZABLE (int)
此常數是 SQLSRV DSN 索引鍵 TransactionIsolation 的可接受值。此常數將連線的交易隔離等級設定為「可序列化」。
PDO::SQLSRV_ENCODING_BINARY (int)
指定資料以原始位元組資料流的形式傳送/接收至/從伺服器,而不執行編碼或轉換。此常數可以傳遞給 PDOStatement::setAttribute、PDO::prepare、PDOStatement::bindColumn 和 PDOStatement::bindParam。
PDO::SQLSRV_ENCODING_SYSTEM (int)
指定資料以系統上設定的 Windows 地區設定之代碼頁中指定的 8 位元字元傳送/接收至/自伺服器。任何多位元組字元或未對應至此代碼頁的字元將會被單一位元組問號 (?) 字元取代。此常數可以傳遞給 PDOStatement::setAttribute、PDO::setAttribute、PDO::prepare、PDOStatement::bindColumn 和 PDOStatement::bindParam。
PDO::SQLSRV_ENCODING_UTF8 (int)
指定資料以 UTF-8 編碼傳送/接收至/自伺服器。這是預設編碼。此常數可以傳遞給 PDOStatement::setAttribute、PDO::setAttribute、PDO::prepare、PDOStatement::bindColumn 和 PDOStatement::bindParam。
PDO::SQLSRV_ENCODING_DEFAULT (int)
指定資料根據連線期間指定的 PDO::SQLSRV_ENCODING_SYSTEM 傳送/接收至/自伺服器。如果在 prepare 陳述式中指定,則使用連線的編碼。此常數可以傳遞給 PDOStatement::setAttribute、PDO::setAttribute、PDO::prepare、PDOStatement::bindColumn 和 PDOStatement::bindParam。
PDO::SQLSRV_ATTR_QUERY_TIMEOUT (int)
代表逾時期限的非負整數,單位為秒。零 (0) 是預設值,表示沒有逾時。此常數可以傳遞給 PDOStatement::setAttribute、PDO::setAttribute 和 PDO::prepare。
PDO::SQLSRV_ATTR_DIRECT_QUERY (int)
指示查詢應直接執行,而不需準備。此常數可以傳遞給 PDO::setAttribute 和 PDO::prepare。更多資訊,請參閱 » 直接和準備好的陳述式執行

目錄

新增註記

使用者貢獻的註記 3 則註記

Peter
9 年前
Microsoft 現已提供支援 PHP 5.6 的 SQLSRV 3.2。

http://www.microsoft.com/en-us/download/details.aspx?id=20098
ian at helastel dot com
8 年前
與 PHP 7.0 和 Linux 相容的更新驅動程式可在 https://github.com/Microsoft/msphpsql/ 的 PHP-7.0-Linux 分支上取得。

這比 ODBC / DBLIB 驅動程式更新,並支援一些額外功能。

它目前被認為是「早期技術預覽版」,因此有一些限制,但根據我的經驗,它一直很穩定。
John P
9 年前
截至 2014 年 12 月 12 日,Microsoft 已正式發布 3.1 版。

對 5.5 的支援有 4 個驅動程式
php_pdo_sqlsrv_55_nts.dll
php_pdo_sqlsrv_55_ts.dll
php_sqlsrv_55_nts.dll
php_sqlsrv_55_ts.dll

注意:3.1 版現在支援 PHP 5.5,並且需要 Microsoft ODBC Driver 11(或更高版本)。

您可以從以下位置下載新的驅動程式
http://www.microsoft.com/en-us/download/details.aspx?id=20098
To Top