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