Fonctions Microsoft 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
add a note add a note

User Contributed Notes 4 notes

up
9
Peter
9 years ago
SQLSRV 3.2 is now available from Microsoft that supports PHP 5.6

http://www.microsoft.com/en-us/download/details.aspx?id=20098
up
7
ian at helastel dot com
8 years ago
An updated driver compatible with both PHP 7.0 and Linux is available on the PHP-7.0-Linux branch of https://github.com/Microsoft/msphpsql/

This is more up to date and supports some additional features over the ODBC / DBLIB drivers.

It is currently considered an 'Early Technical Preview' and hence has some limitations, but in my experience it has been stable.
up
-1
John P
9 years ago
As of 12/12/2014, Microsoft has officially released Version 3.1.

Support for 5.5 has 4 drivers
php_pdo_sqlsrv_55_nts.dll
php_pdo_sqlsrv_55_ts.dll
php_sqlsrv_55_nts.dll
php_sqlsrv_55_ts.dll

Note: Version 3.1 now supports PHP 5.5 and requires Microsoft ODBC Driver 11 (or higher)

You can downlod the new driver from
http://www.microsoft.com/en-us/download/details.aspx?id=20098
up
-6
fleduc dot perso at gmail dot com
7 years ago
Watch out!

If you use PDO SQLSRV on windows 7, using 32 bit php on XAMMP, you might encounter driver problems : "This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server"

The reason, Microsoft 32-bit ODBC driver doesn't install properly on 64-bit Windows 7.

Check the solution to PDO SQLSRV driver problem here in StackOverflow

https://stackoverflow.com/a/46245990/1330248
To Top