Partage via


PDOStatement::setAttribute

Télécharger le pilote PHP

Définit une valeur d’attribut, à savoir un attribut PDO prédéfini ou un attribut de pilote personnalisé.

Syntaxe

bool PDOStatement::setAttribute ($attribute, $value );  

Paramètres

$attribute : entier, une des constantes PDO::ATTR_* ou PDO::SQLSRV_ATTR_*. Consultez la section Notes pour obtenir la liste des attributs disponibles.

$valeur : valeur (mixte) à définir pour le $attribute spécifié.

Valeur de retour

TRUE en cas de réussite, FALSE dans le cas contraire.

Notes

Le tableau suivant contient la liste des attributs disponibles :

Attribut Valeurs Description
PDO::SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE De 1 jusqu’à la limite de la mémoire PHP. Configure la taille de la mémoire tampon qui contient le jeu de résultats pour un curseur côté client.

La valeur par défaut est 10 240 Ko (10 Mo).

Pour plus d’informations sur les curseurs côté client, consultez Types de curseurs (pilote PDO_SQLSRV).
PDO::SQLSRV_ATTR_DATA_CLASSIFICATION True ou False Spécifie s’il faut récupérer les métadonnées de classification des données lors de l’appel de PDOStatement::getColumnMeta. La valeur par défaut est false.
PDO::SQLSRV_ATTR_DECIMAL_PLACES Entier compris entre 0 et 4 (inclus) Spécifie le nombre de décimales pour la mise en forme des valeurs monétaires extraites.

Les entiers négatifs et les valeurs supérieures à 4 sont ignorés.

Cette option fonctionne uniquement quand PDO::SQLSRV_ATTR_FORMAT_DECIMALS a la valeur true.

Vous pouvez aussi définir cette option au niveau de la connexion. Dans ce cas, cette option remplace l’option au niveau de la connexion.

Pour plus d’informations, consultez Mise en forme des chaînes décimales et valeurs monétaires (pilote PDO_SQLSR).
PDO::SQLSRV_ATTR_ENCODING Integer

PDO::SQLSRV_ENCODING_UTF8 (valeur par défaut)

PDO::SQLSRV_ENCODING_SYSTEM

PDO::SQLSRV_ENCODING_BINARY
Définit l’encodage de jeu de caractères utilisé par le pilote pour communiquer avec le serveur.
PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE True ou False Spécifie s’il faut récupérer les types de date et d’heure en tant qu’objets DateTime PHP. Si vous conservez la valeur false, le comportement par défaut consiste à les retourner sous forme de chaînes.

Vous pouvez aussi définir cette option au niveau de la connexion. Dans ce cas, cette option remplace l’option au niveau de la connexion.

Pour plus d’informations, consultez Procédure : Récupérer des types date et heure sous forme d’objets datetime PHP à l’aide du pilote PDO_SQLSRV.
PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE True ou False Gère les extractions de nombres à partir de colonnes avec des types SQL numériques (bit, entier, smallint, tinyint, float ou real).

Quand l’indicateur d’option de connexion ATTR_STRINGIFY_FETCHES est activé, la valeur de retour est une chaîne, même si SQLSRV_ATTR_FETCHES_NUMERIC_TYPE est activé.

Quand le type PDO retourné dans la colonne de liaison est PDO_PARAM_INT, la valeur de retour à partir d’une colonne d’entiers est int, même si SQLSRV_ATTR_FETCHES_NUMERIC_TYPE est désactivé.
PDO::SQLSRV_ATTR_FORMAT_DECIMALS True ou False Spécifie s’il faut ajouter des zéros au début des chaînes décimales si nécessaire. Si elle est définie, cette option active l’option PDO::SQLSRV_ATTR_DECIMAL_PLACES pour mettre en forme les types monétaires. Si vous conservez la valeur false, le comportement par défaut qui consiste à retourner la précision exacte et à omettre les zéros non significatifs pour les valeurs inférieures à 1 est utilisé.

Vous pouvez aussi définir cette option au niveau de la connexion. Dans ce cas, cette option remplace l’option au niveau de la connexion.

Pour plus d’informations, consultez Mise en forme des chaînes décimales et valeurs monétaires (pilote PDO_SQLSR).
PDO::SQLSRV_ATTR_QUERY_TIMEOUT Integer Définit le délai d’expiration de la requête, en secondes.

Par défaut, le pilote attend les résultats indéfiniment. Les nombres négatifs ne sont pas autorisés.

0 signifie aucun délai d’attente.

Exemple

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

Voir aussi

PDOStatement, classe

PDO