PDO::setAttribute
设置预定义的 PDO 属性或自定义驱动程序属性。
语法
bool PDO::setAttribute ( $attribute, $value );
参数
$attribute:要设置的属性。 请参阅受支持的属性列表的“备注”部分。
$value:值(混合类型)。
返回值
如果成功,将返回 True;否则返回 False。
注解
属性 | 由以下值处理 | 支持的值 | 说明 |
---|---|---|---|
PDO::ATTR_CASE | PDO | PDO::CASE_LOWER PDO::CASE_NATURAL PDO::CASE_UPPER |
指定列名称的大小写。 PDO::CASE_LOWER 会使列名称小写。 PDO::CASE_NATURA(默认值)显示数据库返回的列名称。 PDO::CASE_UPPER 会使列名称大写。 可以使用 PDO::setAttribute 设置此属性。 |
PDO::ATTR_DEFAULT_FETCH_MODE | PDO | 请参阅 PDO 文档。 | 请参阅 PDO 文档。 |
PDO::ATTR_DEFAULT_STR_PARAM | PDO | PDO::PARAM_STR_CHAR PDO::PARAM_STR_NATL |
有关更多信息,请参阅 PDO::quote 中的示例。 |
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 文档。 | 指定应如何返回 NULL。 PDO::NULL_NATURAL 不执行任何转换。 PDO::NULL_EMPTY_STRING 将空字符串转换为 NULL。 PDO::NULL_TO_STRING 将 NULL 转换为空字符串。 |
PDO::ATTR_STATEMENT_CLASS | PDO | 请参阅 PDO 文档。 | 设置派生自 PDOStatement 的用户提供的语句类。 需要 array(string classname, array(mixed constructor_args)) 。有关详细详细,请参阅 PDO 文档。 |
PDO::ATTR_STRINGIFY_FETCHES | PDO | True 或 False | 检索数据时,将数值转换为字符串。 |
PDO::SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE | Microsoft Drivers for PHP for SQL Server | 1 到 PHP 内存限制。 | 设置使用客户端游标时保留的结果集的缓冲区大小。 如果未在 php.ini 文件中指定,则默认值为 10240 KB。 不允许使用零和负数。 有关创建客户端游标的查询的详细信息,请参阅游标类型(PDO_SQLSRV 驱动程序)。 |
PDO::SQLSRV_ATTR_DECIMAL_PLACES | Microsoft Drivers for PHP for SQL Server | 介于 0 和 4 之间(含 0 和 4)的整数 | 指定设置提取的 Money 值格式时的小数位数。 将忽略任何负整数或大于 4 的值。 此选项仅在 PDO::SQLSRV_ATTR_FORMAT_DECIMALS 为 true 时适用。 还可以在语句级别设置此选项。 如果是这样,语句级别选项将覆盖此选项。 有关详细信息,请参阅设置十进制字符串和 Money 值格式(PDO_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_BINARY。 默认值为 PDO::SQLSRV_ENCODING_UTF8。 |
PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE | Microsoft Drivers for PHP for SQL Server | True 或 False | 指定是否以 PHP DateTime 对象形式检索日期和时间类型。 如果保留 false,则默认行为是将它们作为字符串返回。 还可以在语句级别设置此选项。 如果是这样,语句级别选项将覆盖此选项。 有关详细信息,请参阅操作说明:使用 PDO_SQLSRV 驱动程序检索日期和时间类型作为 PHP Datetime 对象。 |
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_FORMAT_DECIMALS | Microsoft Drivers for PHP for SQL Server | True 或 False | 指定是否在合适时向十进制字符串添加前导零。 如已设置,此选项将启用用于设置 Money 类型格式的 PDO::SQLSRV_ATTR_DECIMAL_PLACES 选项。 如果保留 false,使用的默认行为是返回精确的精度,并为小于 1 的值省略前导零。 还可以在语句级别设置此选项。 如果是这样,语句级别选项将覆盖此选项。 有关详细信息,请参阅设置十进制字符串和 Money 值格式(PDO_SQLSRV 驱动程序)。 |
PDO::SQLSRV_ATTR_QUERY_TIMEOUT | Microsoft Drivers for PHP for SQL Server | 整型 | 设置查询超时(以秒为单位)。 默认值为 0,这意味着该驱动程序将无限期地等待结果。 不允许使用负数。 |
PDO 将处理某些预定义的属性,并且需要驱动程序处理其他属性。 由驱动程序处理所有自定义属性和连接选项。 将根据 PDO::ATTR_ERRMODE 的设置报告不受支持的属性、连接选项或不受支持的值。
已在 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" ) ));
}
?>