Freigeben über


PDOStatement::setAttribute

PHP-Treiber herunterladen

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" ) );  
?>  

Weitere Informationen

PDOStatement-Klasse

PDO