(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::setAttribute — 设置属性
设置数据库句柄属性。下面列出了一些可用的通用属性;有些驱动可能使用另外的特定属性。 请注意,特定的驱动程序属性不得用于其他驱动程序。
PDO::ATTR_CASE
强制列名为指定的大小写。可以采用以下某个值:
PDO::CASE_LOWER
PDO::CASE_NATURAL
PDO::CASE_UPPER
PDO::ATTR_ERRMODE
PDO 的报错方式。可以采用以下某个值:
PDO::ERRMODE_SILENT
PDO::ERRMODE_WARNING
E_WARNING
警告。
PDO::ERRMODE_EXCEPTION
PDO::ATTR_ORACLE_NULLS
注意: 此属性适用于所有驱动程序,而不仅仅是 Oracle。
确定是否以及如何转换 null
和空字符串。可以采用以下值之一:
PDO::NULL_NATURAL
PDO::NULL_EMPTY_STRING
null
。
PDO::NULL_TO_STRING
null
被转换为空字符串。
PDO::ATTR_STRINGIFY_FETCHES
PDO::ATTR_STATEMENT_CLASS
设置从 PDOStatement 派生的用户提供的语句类。
需要 array(string classname, array(mixed constructor_args))
。
不能用于持久 PDO 实例。
PDO::ATTR_TIMEOUT
指定超时的秒数。需要 int 类型的值。
注意:
并非所有驱动都支持此选项,这意味着驱动和驱动之间可能会有差异。比如,SQLite 等待的时间达到此值后就放弃获取可写锁,但其他驱动可能会将此值解释为一个连接或读取超时的间隔。
PDO::ATTR_AUTOCOMMIT
注意: 仅适用于 OCI、Firebird 和 MySQL 驱动程序。
PDO::ATTR_EMULATE_PREPARES
注意: 仅适用于 OCI、Firebird 和 MySQL 驱动程序。
是否启用或禁用预处理语句的模拟。有些驱动天然不支持或有限度地支持预处理语句。如果设置为 true
,PDO
始终模拟预处理语句,否则 PDO 将会尝试使用本地预处理语句。如果驱动不能成功预处理当前查询,PDO 将始终回退到模拟预处理语句上。
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
注意: 仅适用于 MySQL 驱动程序。
PDO::ATTR_DEFAULT_FETCH_MODE
设置默认获取模式。关于模式的说明以及如何使用可以在 PDOStatement::fetch() 文档找到。
attribute
要修改的属性。
value
设置 attribute
的值,属性的不同导致需要的类型也会不同。