PDO::setAttribute

下载 PHP 驱动程序

设置预定义的 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" ) ));  
   }  
?>  

另请参阅

PDO 类

PDO