PDO::getAttribute
检索预定义 PDO 或驱动程序属性的值。
语法
mixed PDO::getAttribute ( $attribute )
参数
$attribute:受支持的属性之一。 请参阅受支持的属性列表的“备注”部分。
返回值
如果成功,返回连接选项的值、预定义 PDO 属性或自定义驱动程序属性。 如果失败,返回 null。
注解
下表包含受支持的属性列表。
属性 | 由以下值处理 | 支持的值 | 说明 |
---|---|---|---|
PDO::ATTR_CASE | PDO | PDO::CASE_LOWER PDO::CASE_NATURAL PDO::CASE_UPPER |
指定列名称是否应使用特定格式。 PDO::CASE_LOWER 强制使用小写列名称,PDO::CASE_NATURAL 保留数据库返回的列名称,而PDO::CASE_UPPER 强制使用大写列名称。 默认值为 PDO::CASE_NATURAL。 还可以使用 PDO::setAttribute 设置此属性。 |
PDO::ATTR_CLIENT_VERSION | Microsoft Drivers for PHP for SQL Server | 字符串数组 | 介绍驱动程序和相关库的版本。 返回带有以下元素的数组:ODBC 版本 (MajorVer.MinorVer)、SQL Server Native Client DLL 名称和版本、Microsoft Drivers for PHP for SQL Server 版本 (MajorVer.MinorVer.BuildNumber.Revision) |
PDO::ATTR_DEFAULT_STR_PARAM | PDO | PDO::PARAM_STR_CHAR PDO::PARAM_STR_NATL |
如果未设置为 PDO::PARAM_STR_CHAR,则返回 PDO::PARAM_STR_NATL。 |
PDO::ATTR_DRIVER_NAME | PDO | String | 始终返回“sqlsrv”。 |
PDO::ATTR_DRIVER_VERSION | Microsoft Drivers for PHP for SQL Server | String | 指示 Microsoft Drivers for PHP for SQL Server 版本 (MajorVer.MinorVer.BuildNumber.Revision) |
PDO::ATTR_ERRMODE | PDO | PDO::ERRMODE_SILENT PDO::ERRMODE_WARNING PDO::ERRMODE_EXCEPTION |
指定驱动程序应如何处理失败。 PDO::ERRMODE_SILENT(默认值)设置错误代码和信息。 PDO::ERRMODE_WARNING 引发 E_WARNING。 PDO::ERRMODE_EXCEPTION 引发异常。 还可以使用 PDO::setAttribute 设置此属性。 |
PDO::ATTR_ORACLE_NULLS | PDO | 请参阅 PDO 文档。 | 请参阅 PDO 文档。 |
PDO::ATTR_SERVER_INFO | Microsoft Drivers for PHP for SQL Server | 3 个元素的数组 | 返回当前数据库、SQL Server 版本和 SQL Server 实例。 |
PDO::ATTR_SERVER_VERSION | Microsoft Drivers for PHP for SQL Server | String | 指示 SQL Server 版本 (Major.Minor.BuildNumber) |
PDO::ATTR_STRINGIFY_FETCHES | PDO | 请参阅 PDO 文档 | 请参阅 PDO 文档。 |
PDO::SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE | Microsoft Drivers for PHP for SQL Server | 1 到 PHP 内存限制。 | 配置保留客户端游标的结果集的缓冲区大小。 默认值为 10240 KB (10 MB)。 有关客户端游标的详细信息,请参阅游标类型(SQLSRV 驱动程序)。 |
PDO::SQLSRV_ATTR_DIRECT_QUERY | Microsoft Drivers for PHP for SQL Server | true false |
指定直接或已准备的查询执行。 有关详细信息,请参阅 PDO_SQLSRV 驱动程序中的直接语句执行和预定语句执行。 |
PDO::SQLSRV_ATTR_ENCODING | Microsoft Drivers for PHP for SQL Server | PDO::SQLSRV_ENCODING_UTF8 PDO::SQLSRV_ENCODING_SYSTEM |
指定驱动程序用于与服务器通信的字符集编码。 默认值为 PDO::SQLSRV_ENCODING_UTF8。 |
PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE | Microsoft Drivers for PHP for SQL Server | True 或 False | 处理带有数值 SQL 类型(bit、integer、smallint、tinyint、float 或 real)的列的数值提取。 如果连接选项标志 ATTR_STRINGIFY_FETCHES 已启用,即使 SQLSRV_ATTR_FETCHES_NUMERIC_TYPE 已启用,返回值也是字符串。 如果绑定列中返回的 PDO 类型是 PDO_PARAM_INT,即使 SQLSRV_ATTR_FETCHES_NUMERIC_TYPE 处于关闭状态,整数列的返回值也是 int。 |
PDO::SQLSRV_ATTR_QUERY_TIMEOUT | Microsoft Drivers for PHP for SQL Server | 整型 | 设置查询超时(以秒为单位)。 默认值为 0,这意味着该驱动程序将无限期地等待结果。 不允许使用负数。 |
PDO 将处理某些预定义的属性,同时它需要驱动程序处理其他属性。 所有自定义属性和连接选项都由驱动程序处理,不受支持的属性或连接选项将返回 null。
已在 Microsoft Drivers for PHP for SQL Server的版本 2.0 中添加了对 PDO 的支持。
示例
此示例显示在更改其值之前和之后的 PDO::ATTR_ERRMODE 属性的值。
<?php
$database = "AdventureWorks";
$conn = new PDO( "sqlsrv:server=(local) ; Database = $database", "", "");
$attributes1 = array( "ERRMODE" );
foreach ( $attributes1 as $val ) {
echo "PDO::ATTR_$val: ";
var_dump ($conn->getAttribute( constant( "PDO::ATTR_$val" ) ));
}
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$attributes1 = array( "ERRMODE" );
foreach ( $attributes1 as $val ) {
echo "PDO::ATTR_$val: ";
var_dump ($conn->getAttribute( constant( "PDO::ATTR_$val" ) ));
}
// An example using PDO::ATTR_CLIENT_VERSION
print_r($conn->getAttribute( PDO::ATTR_CLIENT_VERSION ));
?>