PDOStatement::setAttribute
Legt einen Attributwert fest. Entweder ein vordefiniertes PDO-Attribut oder ein benutzerdefiniertes Treiberattribut.
Syntax
bool PDOStatement::setAttribute ($attribute, $value );
Parameter
$attribute: Ein Integer-Wert, eine der Konstanten PDO::ATTR_* oder PDO::SQLSRV_ATTR_*. Eine Liste der verfügbaren Attribute finden Sie im Abschnitt „Anmerkungen“.
$value: Der (gemischte) Wert, der für den angegebenen $attribute-Parameter festgelegt werden soll.
Rückgabewert
„true“ bei Erfolg, andernfalls „false“.
Bemerkungen
Die folgende Tabelle enthält die Liste mit den verfügbaren Attributen:
attribute | Werte | BESCHREIBUNG |
---|---|---|
PDO::SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE | 1 bis zur Grenze des PHP-Speichers. | Konfiguriert die Größe des Puffers, der das Resultset für einen clientseitigen Cursor enthält. Die Standardeinstellung ist 10.240 KB (10 MB). Weitere Informationen zu clientseitigen Cursorn finden Sie unter Cursortypen (PDO_SQLSRV-Treiber). |
PDO::SQLSRV_ATTR_DATA_CLASSIFICATION | true oder false | Gibt an, ob die Metadaten für die Datenklassifizierung beim Aufruf von PDOStatement::getColumnMeta abgerufen werden sollen. Der Standardwert ist false. |
PDO::SQLSRV_ATTR_DECIMAL_PLACES | Ganze Zahl zwischen 0 und (einschließlich) 4 | Gibt die Anzahl der Dezimalstellen beim Formatieren abgerufener Geldwerte (vom Typ „money“) an. Negative ganze Zahlen oder Werte größer als 4 werden ignoriert. Diese Option funktioniert nur, wenn PDO::SQLSRV_ATTR_FORMAT_DECIMALS auf TRUE festgelegt ist. Diese Option kann auch auf Verbindungsebene festgelegt werden. In diesem Fall überschreibt diese Option die Option auf Verbindungsebene. Weitere Informationen finden Sie unter Formatieren von Dezimalzeichenfolgen und Geldwerten (PDO_SQLSRV-Treiber). |
PDO::SQLSRV_ATTR_ENCODING | Integer PDO::SQLSRV_ENCODING_UTF8 (Standard) PDO::SQLSRV_ENCODING_SYSTEM PDO::SQLSRV_ENCODING_BINARY |
Legt die Zeichensatzcodierung fest, die vom Treiber verwendet wird, um mit dem Server zu kommunizieren. |
PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE | true oder false | Gibt an, ob Datums- und Uhrzeittypen als PHP-DateTime-Objekte abgerufen werden sollen. Bei FALSE erfolgt die Standardrückgabe als Zeichenfolgen. Diese Option kann auch auf Verbindungsebene festgelegt werden. In diesem Fall überschreibt diese Option die Option auf Verbindungsebene. Weitere Informationen finden Sie unter Vorgehensweise: Abrufen von Datums- und Uhrzeittypen als PHP-datetime-Objekte mit dem PDO_SQLSRV-Treiber. |
PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE | true oder false | Verarbeitet numerische Abrufvorgänge aus Spalten mit numerischen SQL-Typen („bit“, „integer“, „smallint“, „tinyint“, „float“ oder „real“). Wenn das Flag für die Verbindungsoption ATTR_STRINGIFY_FETCHES auf „On“ festgelegt ist, ist der Rückgabewert selbst dann eine Zeichenfolge, wenn SQLSRV_ATTR_FETCHES_NUMERIC_TYPE auf „On“ festgelegt ist. Wenn der zurückgegebene PDO-Typ in einer bind-Spalte PDO_PARAM_INT lautet, ist der Rückgabewert aus einer integer-Spalte vom Typ „int“, selbst wenn SQLSRV_ATTR_FETCHES_NUMERIC_TYPE auf „Off“ festgelegt ist. |
PDO::SQLSRV_ATTR_FORMAT_DECIMALS | true oder false | Gibt an, ob Dezimalzeichenfolgen gegebenenfalls führende Nullen hinzugefügt werden sollen. Bei Festlegung erlaubt diese Option der Option PDO::SQLSRV_ATTR_DECIMAL_PLACES das Formatieren von Datentypen vom Typ „money“. Bei FALSE wird als Standardverhalten die Rückgabe absoluter Genauigkeit und das Auslassen führender Nullen für Werte kleiner 1 verwendet. Diese Option kann auch auf Verbindungsebene festgelegt werden. In diesem Fall überschreibt diese Option die Option auf Verbindungsebene. Weitere Informationen finden Sie unter Formatieren von Dezimalzeichenfolgen und Geldwerten (PDO_SQLSRV-Treiber). |
PDO::SQLSRV_ATTR_QUERY_TIMEOUT | Integer | Legt das Abfragetimeout in Sekunden fest. Standardmäßig wartet der Treiber unbegrenzt auf Ergebnisse. Negative Zahlen sind nicht zulässig. „0“ bedeutet „kein Timeout“. |
Beispiel
<?php
$database = "AdventureWorks";
$server = "(local)";
$conn = new PDO( "sqlsrv:server=$server ; Database = $database", "", "", array('MultipleActiveResultSets'=>false ) );
$stmt = $conn->prepare('SELECT * FROM Person.ContactType');
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" ) );
?>