# Fonctions Microsoft du pilote PDO SQL Server (PDO_SQLSRV)

## Introduction

PDO_SQLSRV est un pilote qui implémente l'interface PDO (PHP Data Objects) pour permettre l'accès depuis PHP aux bases de données MS SQL Server (version SQL Server 2005 et supérieures) et SQL Azure.

## Installation

La version la plus récente du pilote est disponible au téléchargement ici : » téléchargement SQLSRV. Les sources du pilote sont hébergées dans un » dépôt public.

Pour plus d'information à propos des exigences système, consultez le chapitre sur les » exisgences systèmes SQLSRV.

Sur Windows, l'extension PDO_SQLSRV est activée en téléchargeant et en ajoutant les fichiers DLL appropriés dans le répertoire d'extension PHP et l'entrée correspondante dans le fichier php.ini.

Sur Linux et macOS, l'extension PDO_SQLSRV peut être installée en utilisant » PECL. Voir le » tutoriel d'installation pour plus de détails. » driver ODBC du serveur SQL Microsoft pour Linux.

## Constantes pré-définies

Les constantes ci-dessous sont définies par ce pilote et seront seulement disponibles lorsque l'extension aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution. De plus, ces constantes spécifiques au pilote devraient être utilisées seulement si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait être utilisé pour obtenir l'attribut `PDO::ATTR_DRIVER_NAME` pour vérifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

`PDO::SQLSRV_TXN_READ_UNCOMMITTED` (int)
  Cette constante est une valeur possible pour la clé "TransactionIsolation" du DSN pour SQLSRV. Cette constante positionne le niveau d'isolation de la transaction à "Read Uncommitted".
`PDO::SQLSRV_TXN_READ_COMMITTED` (int)
  Cette constante est une valeur possible pour la clé "TransactionIsolation" du DSN pour SQLSRV. Cette constante positionne le niveau d'isolation de la transaction à "Read Uncommitted".
`PDO::SQLSRV_TXN_REPEATABLE_READ` (int)
  Cette constante est une valeur possible pour la clé "TransactionIsolation" du DSN pour SQLSRV. Cette constante positionne le niveau d'isolation de la transaction à "Repeateable Read".
`PDO::SQLSRV_TXN_SNAPSHOT` (int)
  Cette constante est une valeur possible pour la clé "TransactionIsolation" du DSN pour SQLSRV. Cette constante positionne le niveau d'isolation de la transaction à "Snapshot".
`PDO::SQLSRV_TXN_SERIALIZABLE` (int)
  Cette constante est une valeur possible pour la clé "TransactionIsolation" du DSN pour SQLSRV. Cette constante positionne le niveau d'isolation de la transaction à "Serializable".
`PDO::SQLSRV_ENCODING_BINARY` (int)
  Spécifie que cette donnée est envoyée vers le (ou reçue du) serveur comme un flux d'octets, sans opérer d'encodage ou de traduction. Cette constante peut être utilisée dans les appels à PDOStatement::setAttribute, PDO::prepare, PDOStatement::bindColumn, et PDOStatement::bindParam.
`PDO::SQLSRV_ENCODING_SYSTEM` (int)
  Spécifie que cette donnée est envoyée vers le (ou reçue du) serveur comme un flux de caractères 8 bits, comme spécifié dans la page de code de la locale Windows active sur le système. Tout caractère multioctet, ou caractère qui n'existe pas dans cette page de code, est substitué par un simple point d'interrogation (?). Cette constante peut être utilisée dans les appels à PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, et PDOStatement::bindParam.
`PDO::SQLSRV_ENCODING_UTF8` (int)
  Spécifie que cette donnée est envoyée vers le (ou reçue du) serveur comme un flux de caractères UTF-8. Il s'agit de l'encodage par défaut. Cette constante peut être utilisée dans les appels à PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, et PDOStatement::bindParam.
`PDO::SQLSRV_ENCODING_DEFAULT` (int)
  Spécifie que cette donnée est envoyée vers le (ou reçue du) serveur en utilisant l'encodage PDO::SQLSRV_ENCODING_SYSTEM si elle est spécifiée pendant la connexion. Si elle est spécifiée dans une instruction "prepare", c'est l'encodage de la connexion qui est utilisé. Cette constante peut être utilisée dans les appels à PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, et PDOStatement::bindParam.
`PDO::SQLSRV_ATTR_QUERY_TIMEOUT` (int)
  Un entier positif ou nul représentant la durée de timeout, en secondes. Zéro (0) est la valeur par défaut et signifie qu'il n'y a pas de timeout. Cette constante peut être utilisée dans les appels à PDOStatement::setAttribute, PDO::setAttribute, et PDO::prepare.
`PDO::SQLSRV_ATTR_DIRECT_QUERY` (int)
  Indique une requête qui doit être exécutée directement, sans être préparée. Cette constante peut être utilisée dans les appels à PDO::setAttribute, et PDO::prepare. Pour plus d'informations, voir (en anglais) » Direct and Prepared Statement Execution.

## Sommaire

- PDO_SQLSRV DSN — Connexion à des bases de données MS SQL Server et SQL Azure