PDOStatement::setAttribute
Imposta un valore di attributo, ovvero un attributo PDO predefinito o un attributo personalizzato del driver.
Sintassi
bool PDOStatement::setAttribute ($attribute, $value );
Parametri
$attribute: numero intero, una delle costanti PDO::ATTR_* or PDO::SQLSRV_ATTR_*. Per l'elenco degli attributi disponibili, vedere la sezione Osservazioni.
$value: valore (misto) da impostare per $attribute.
Valore restituito
TRUE in caso di esito positivo; in caso contrario, FALSE.
Osservazioni:
Nella tabella seguente sono elencati gli attributi disponibili:
Attributo | Valori | Descrizione |
---|---|---|
PDO::SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE | 1 per il limite di memoria PHP. | Consente di configurare le dimensioni del buffer che contiene il set di risultati per un cursore sul lato client. Il valore predefinito è 10.240 KB (10 MB). Per altre informazioni sui cursori sul lato client, vedere Tipi di cursore (PDO_SQLSRV Driver). |
PDO::SQLSRV_ATTR_DATA_CLASSIFICATION | true o false | Specifica se recuperare i metadati di classificazione dei dati quando si chiama PDOStatement::getColumnMeta. L'impostazione predefinita è false. |
PDO::SQLSRV_ATTR_DECIMAL_PLACES | Numero intero compreso tra 0 e 4 inclusi | Specifica il numero di posizioni decimali per la formattazione dei valori money recuperati. Qualsiasi numero intero negativo o valore maggiore di 4 verrà ignorato. Questa opzione funziona solo quando PDO::SQLSRV_ATTR_FORMAT_DECIMALS è true. Questa opzione può anche essere impostata a livello di connessione. In questo caso, questa opzione eseguirà l'override dell'opzione a livello di connessione. Per altre informazioni, vedere Formattazione di stringhe decimali e valori money (driver PDO_SQLSRV). |
PDO::SQLSRV_ATTR_ENCODING | Intero PDO::SQLSRV_ENCODING_UTF8 (impostazione predefinita) PDO::SQLSRV_ENCODING_SYSTEM PDO::SQLSRV_ENCODING_BINARY |
Consente di impostare la codifica del set di caratteri usata dal driver per comunicare con il server. |
PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE | true o false | Specifica se recuperare i tipi di data e ora come oggetti DateTime PHP. Se false, il comportamento predefinito è restituirli come stringhe. Questa opzione può anche essere impostata a livello di connessione. In questo caso, questa opzione eseguirà l'override dell'opzione a livello di connessione. Per altre informazioni, vedere Procedura: Recuperare i tipi di data e ora come oggetti DateTime PHP usando il driver PDO_SQLSRV. |
PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE | true o false | Gestisce i recuperi numerici dalle colonne con tipi SQL numerici (bit, integer, smallint, tinyint, float o real). Quando il flag dell'opzione di connessione ATTR_STRINGIFY_FETCHES è attivato, il valore restituito è una stringa, anche quando è attivato SQLSRV_ATTR_FETCHES_NUMERIC_TYPE. Quando il tipo PDO restituito nella colonna di associazione è PDO_PARAM_INT, il valore restituito da una colonna integer è un valore int anche se SQLSRV_ATTR_FETCHES_NUMERIC_TYPE è disattivato. |
PDO::SQLSRV_ATTR_FORMAT_DECIMALS | true o false | Specifica se aggiungere zeri iniziali alle stringhe decimali quando appropriato. Se impostata, questa opzione abilita l'opzione PDO::SQLSRV_ATTR_DECIMAL_PLACES per la formattazione dei tipi money. Se false, viene usato il comportamento predefinito di restituire la precisione esatta e di omettere gli zeri iniziali per valori inferiori a 1. Questa opzione può anche essere impostata a livello di connessione. In questo caso, questa opzione eseguirà l'override dell'opzione a livello di connessione. Per altre informazioni, vedere Formattazione di stringhe decimali e valori money (driver PDO_SQLSRV). |
PDO::SQLSRV_ATTR_QUERY_TIMEOUT | Intero | Imposta il timeout in secondi della query. Per impostazione predefinita, il driver attende i risultati per un periodo illimitato. I numeri negativi non sono consentiti. 0 indica nessun timeout. |
Esempio
<?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" ) );
?>