PDOStatement::setAttribute
Sets an attribute value, either a predefined PDO attribute or a custom driver attribute.
Syntax
bool PDOStatement::setAttribute ($attribute, $value );
Parameters
$attribute: An integer, one of the PDO::ATTR_* or PDO::SQLSRV_ATTR_* constants. See the Remarks section for the list of available attributes.
$value: The (mixed) value to be set for the specified $attribute.
Return Value
TRUE on success, FALSE otherwise.
Remarks
The following table contains the list of available attributes:
Attribute |
Values |
Description |
---|---|---|
PDO::ATTR_CURSOR |
PDO::CURSOR_FWDONLY PDO::CURSOR_SCROLL |
Specifies server side cursor behaviors. Read only. Default = PDO::CURSOR_FWDONLY. PDO::CURSOR_SCROLL is the same as SQLSRV_CURSOR_STATIC. See Specifying a Cursor Type and Selecting Rows for more information. For example, array( PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY ). |
PDO::SQLSRV_ATTR_ENCODING |
Integer PDO::SQLSRV_ENCODING_UTF8 (Default) PDO::SQLSRV_ENCODING_SYSTEM PDO::SQLSRV_ENCODING_BINARY |
Sets the character set encoding to be used by the driver to communicate with the server. |
PDO::SQLSRV_ATTR_QUERY_TIMEOUT |
Integer |
Sets the query timeout in seconds. By default, the driver will wait indefinitely for results. Negative numbers are not allowed. 0 means no timeout. |
Support for PDO was added in version 2.0 of the Microsoft Drivers for PHP for SQL Server.
Example
<?php
$database = "AdventureWorks";
$server = "(local)";
$conn = new PDO( "sqlsrv:server=$server ; Database = $database", "", "", array('MultipleActiveResultSets'=>false ) );
$stmt = $conn->prepare('SELECT * FROM Person.ContactType');
$stmt->setAttribute( PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL );
echo $stmt->getAttribute( constant( "PDO::ATTR_CURSOR" ) );
echo "\n";
$stmt->setAttribute( PDO::ATTR_CURSOR, PDO::CURSOR_FWDONLY );
echo $stmt->getAttribute( constant( "PDO::ATTR_CURSOR" ) );
echo "\n";
$stmt->setAttribute(PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 2);
echo $stmt->getAttribute( constant( "PDO::SQLSRV_ATTR_QUERY_TIMEOUT" ) );
?>