PHP Conference Japan 2024

Microsoft SQL Server 函数 (PDO_SQLSRV)

简介

PDO_SQLSRV 是一个驱动程序,它实现了 PHP 数据对象 (PDO) 接口,以便从 PHP 访问 MS SQL Server(从 SQL Server 2005 开始)和 SQL Azure 数据库。

安装

最新版本的驱动程序可在此处下载:» SQLSRV 下载。驱动程序源代码托管在 » 公共存储库 中。

有关系统要求的更多信息,请参阅 » SQLSRV 系统要求

在 Windows 上,可以通过下载并添加相应的 DLL 文件到 PHP 扩展目录以及在 php.ini 文件中添加相应的条目来启用 PDO_SQLSRV 扩展。

在 Linux 和 macOS 上,可以使用 » PECL 安装 PDO_SQLSRV 扩展。有关详细信息,请参阅 » 安装教程

预定义常量

以下常量由此驱动程序定义,并且仅在将扩展编译到 PHP 中或在运行时动态加载时可用。此外,仅当您使用此驱动程序时,才应使用这些驱动程序特定的常量。将驱动程序特定的属性与其他驱动程序一起使用可能会导致意外行为。PDO::getAttribute() 可用于获取 PDO::ATTR_DRIVER_NAME 属性以检查驱动程序,如果您的代码可以针对多个驱动程序运行。

PDO::SQLSRV_TXN_READ_UNCOMMITTED (int)
此常量是 SQLSRV DSN 密钥 TransactionIsolation 的可接受值。此常量将连接的事务隔离级别设置为 Read Uncommitted。
PDO::SQLSRV_TXN_READ_COMMITTED (int)
此常量是 SQLSRV DSN 密钥 TransactionIsolation 的可接受值。此常量将连接的事务隔离级别设置为 Read Committed。
PDO::SQLSRV_TXN_REPEATABLE_READ (int)
此常量是 SQLSRV DSN 密钥 TransactionIsolation 的可接受值。此常量将连接的事务隔离级别设置为 Repeateable Read。
PDO::SQLSRV_TXN_SNAPSHOT (int)
此常量是 SQLSRV DSN 密钥 TransactionIsolation 的可接受值。此常量将连接的事务隔离级别设置为 Snapshot。
PDO::SQLSRV_TXN_SERIALIZABLE (int)
此常量是 SQLSRV DSN 密钥 TransactionIsolation 的可接受值。此常量将连接的事务隔离级别设置为 Serializable。
PDO::SQLSRV_ENCODING_BINARY (int)
指定数据作为原始字节流发送/检索到/从服务器,而不执行编码或转换。此常量可以传递给 PDOStatement::setAttribute、PDO::prepare、PDOStatement::bindColumn 和 PDOStatement::bindParam。
PDO::SQLSRV_ENCODING_SYSTEM (int)
指定数据作为 8 位字符发送/检索到/从服务器,如系统上设置的 Windows 区域设置的代码页中指定。任何多字节字符或不映射到此代码页的字符都将替换为单个字节问号 (?) 字符。此常量可以传递给 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 发送/检索到/从服务器。如果在准备语句中指定,则使用连接的编码。此常量可以传递给 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 条注释

13
Peter
9 年前
Microsoft 现在提供了支持 PHP 5.6 的 SQLSRV 3.2。

http://www.microsoft.com/en-us/download/details.aspx?id=20098
6
ian at helastel dot com
8 年前
https://github.com/Microsoft/msphpsql/ 的 PHP-7.0-Linux 分支上提供了与 PHP 7.0 和 Linux 兼容的更新驱动程序。

此驱动程序更新,并支持 ODBC/DBLIB 驱动程序的一些其他功能。

它目前被认为是“早期技术预览版”,因此存在一些限制,但根据我的经验,它一直很稳定。
0
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 驱动程序 11(或更高版本)。

您可以从以下地址下载新驱动程序
http://www.microsoft.com/en-us/download/details.aspx?id=20098
To Top