Constantes (Microsoft Drivers for PHP for SQL Server)

Télécharger le pilote PHP

Cette rubrique traite des constantes définies par le Pilotes Microsoft SQL Server pour PHP.

Constantes de pilote PDO_SQLSRV

Les constantes répertoriées sur le site web PDO sont valides dans Pilotes Microsoft SQL Server pour PHP.

Les sections qui suivent décrivent les constantes propres à Microsoft dans le pilote PDO_SQLSRV.

Constantes de niveau d’isolation de la transaction

La clé TransactionIsolation , qui est utilisée avec PDO::__construct, accepte l’une des constantes suivantes :

  • PDO::SQLSRV_TXN_READ_UNCOMMITTED

  • PDO::SQLSRV_TXN_READ_COMMITTED

  • PDO::SQLSRV_TXN_REPEATABLE_READ

  • PDO::SQLSRV_TXN_SNAPSHOT

  • PDO::SQLSRV_TXN_SERIALIZABLE

Pour plus d’informations sur la clé TransactionIsolation , consultez Connection Options.

Constantes d’encodage

L’attribut PDO::SQLSRV_ATTR_ENCODING peut être passé à PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn et PDOStatement::bindParam.

Les valeurs pouvant être passées à PDO::SQLSRV_ATTR_ENCODING sont

Constante de pilote PDO_SQLSRV Description
PDO::SQLSRV_ENCODING_BINARY Les données sont un flux d’octets bruts retourné à partir du serveur sans encodage ni traduction.

Non valide pour PDO::setAttribute.
PDO::SQLSRV_ENCODING_SYSTEM Les données sont des caractères huit bits comme spécifié dans la page de codes des paramètres régionaux Windows définis sur le système. Les caractères multioctets ou les caractères non mappés dans cette page de codes sont remplacés par un point d’interrogation (?) à un octet.
PDO::SQLSRV_ENCODING_UTF8 Les données sont dans l’encodage UTF-8. Il s’agit de l’encodage par défaut.
PDO::SQLSRV_ENCODING_DEFAULT Utilise PDO::SQLSRV_ENCODING_SYSTEM si cela est spécifié durant la connexion.

Utiliser l’encodage de la connexion s’il est spécifié dans une instruction de préparation.

Délai d’expiration de la requête

L’attribut PDO::SQLSRV_ATTR_QUERY_TIMEOUT est un entier non négatif quelconque représentant le délai d’expiration, en secondes. Zéro (0) est la valeur par défaut, ce qui signifie aucun délai d’expiration.

Vous pouvez spécifier l’attribut PDO::SQLSRV_ATTR_QUERY_TIMEOUT avec PDOStatement::setAttribute, PDO::setAttribute et PDO::prepare.

Exécution directe ou préparée

Vous pouvez sélectionner l’exécution de requête directe ou l’exécution d’instruction préparée avec l’attribut PDO::SQLSRV_ATTR_DIRECT_QUERY. PDO::SQLSRV_ATTR_DIRECT_QUERY peut être défini avec PDO::prepare ou PDO::setAttribute. Pour plus d’informations sur PDO::SQLSRV_ATTR_DIRECT_QUERY, consultez Exécution d’instruction directe et exécution d’instruction préparée dans le pilote PDO_SQLSRV.

Gestion des extractions numériques

L’attribut PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE peut être utilisé pour gérer les extractions numériques à partir de colonnes ayant un type SQL numérique (bit, integer, smallint, tinyint, float et real). Si PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE a la valeur true, les résultats issus d’une colonne d’entiers sont représentés sous forme d’int, tandis que les valeurs flottantes et réelles SQL sont représentées sous forme de valeurs flottantes. Cet attribut peut être défini avec PDOStatement::setAttribute.

Vous pouvez modifier le comportement de mise en forme décimale par défaut avec les attributs PDO::SQLSRV_ATTR_FORMAT_DECIMALS et PDO::SQLSRV_ATTR_DECIMAL_PLACES. Le comportement de ces attributs est identique à celui des options correspondantes du côté SQLSRV (FormatDecimals et DecimalPlaces), à ceci près que les paramètres de sortie ne sont pas pris en charge pour la mise en forme. Ces attributs peuvent être définis au niveau de la connexion ou de l’instruction avec PDO::setAttribute ou PDOStatement::setAttribute, mais l’attribut d’instruction remplacera l’attribut de connexion correspondant. Pour plus d’informations, consultez Mise en forme des chaînes décimales et valeurs monétaires (pilote PDO_SQLSR).

Récupération (fetch) de la date et de l’heure de gestion

PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE spécifie s’il faut récupérer les types de date et d’heure sous forme d’objets DateTime PHP. Si vous conservez la valeur false, le comportement par défaut consiste à les retourner sous forme de chaînes. Cet attribut peut être défini au niveau de la connexion ou de l’instruction avec PDO::setAttribute ou PDOStatement::setAttribute, mais l’attribut d’instruction remplacera l’attribut de connexion correspondant. 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.

SQLSRV

Les sections qui suivent répertorient les constantes utilisées par le pilote SQLSRV.

Constantes ERR

Le tableau suivant répertorie les constantes utilisées pour spécifier si sqlsrv_errors retourne des erreurs, des avertissements ou les deux.

Valeur Description
SQLSRV_ERR_ALL Les erreurs et avertissements générés sur le dernier appel de fonction sqlsrv sont retournés. Il s’agit de la valeur par défaut.
SQLSRV_ERR_ERRORS Les erreurs générées sur le dernier appel de fonction sqlsrv sont retournées.
SQLSRV_ERR_WARNINGS Les avertissements générés sur le dernier appel de fonction sqlsrv sont retournés.

Constantes FETCH

Le tableau suivant répertorie les constantes utilisées pour spécifier le type de tableau retourné par sqlsrv_fetch_array.

Constante SQLSRV Description
SQLSRV_FETCH_ASSOC sqlsrv_fetch_array retourne la ligne de données suivante sous forme de tableau associatif.
SQLSRV_FETCH_BOTH sqlsrv_fetch_array retourne la ligne de données suivante sous forme de tableau avec des clés numériques et associatives. Il s’agit de la valeur par défaut.
SQLSRV_FETCH_NUMERIC sqlsrv_fetch_array retourne la ligne de données suivante sous forme de tableau indexé numériquement.

Constantes de journalisation

Cette section répertorie les constantes utilisées pour modifier les paramètres de journalisation avec sqlsrv_configure. Pour plus d’informations sur la journalisation de l’activité, consultez Logging Activity.

Le tableau suivant répertorie les constantes que vous pouvez utiliser comme valeur du paramètre LogSubsystems :

Constante SQLSRV (entier équivalent entre parenthèses) Description
SQLSRV_LOG_SYSTEM_ALL (-1) Active la journalisation de tous les sous-systèmes.
SQLSRV_LOG_SYSTEM_CONN (2) Active la journalisation de l’activité de connexion.
SQLSRV_LOG_SYSTEM_INIT (1) Active la journalisation de l’activité d’initialisation.
SQLSRV_LOG_SYSTEM_OFF (0) Désactive la journalisation.
SQLSRV_LOG_SYSTEM_STMT (4) Active la journalisation de l’activité d’instruction.
SQLSRV_LOG_SYSTEM_UTIL (8) Active la journalisation de l’activité des fonctions d’erreur (telles que handle_error et handle_warning).

Le tableau suivant répertorie les constantes que vous pouvez utiliser comme valeur du paramètre LogSeverity :

Constante SQLSRV (entier équivalent entre parenthèses) Description
SQLSRV_LOG_SEVERITY_ALL (-1) Spécifie que les erreurs, avertissements et avis doivent être enregistrés.
SQLSRV_LOG_SEVERITY_ERROR (1) Spécifie que les erreurs doivent être enregistrées.
SQLSRV_LOG_SEVERITY_NOTICE (4) Spécifie que les avis doivent être enregistrés.
SQLSRV_LOG_SEVERITY_WARNING (2) Spécifie que les avertissements doivent être enregistrés.

Constantes nullables

Le tableau suivant répertorie les constantes que vous pouvez utiliser pour déterminer si une colonne est nullable ou si cette information n’est pas disponible. Vous pouvez comparer la valeur de la clé Nullable retournée par sqlsrv_field_metadata pour déterminer l’état nullable de la colonne.

Constante SQLSRV (entier équivalent entre parenthèses) Description
SQLSRV_NULLABLE_YES (0) La colonne accepte la valeur Null.
SQLSRV_NULLABLE_NO (1) La colonne n’accepte pas la valeur Null.
SQLSRV_NULLABLE_UNKNOWN (2) On ne sait pas si la colonne accepte la valeur Null.

Constantes PARAM

La liste suivante répertorie les constantes qui permettent de spécifier la direction du paramètre quand vous appelez sqlsrv_query ou sqlsrv_prepare.

Constante SQLSRV Description
SQLSRV_PARAM_IN Indique un paramètre d’entrée.
SQLSRV_PARAM_INOUT Indique un paramètre bidirectionnel.
SQLSRV_PARAM_OUT Indique un paramètre de sortie.

Constantes PHPTYPE

Le tableau suivant répertorie les constantes utilisées pour décrire des types de données PHP. Pour plus d’informations sur les types de données PHP, consultez Types PHP.

Constante SQLSRV Type de données PHP
SQLSRV_PHPTYPE_INT Integer
SQLSRV_PHPTYPE_DATETIME Datetime
SQLSRV_PHPTYPE_FLOAT Float
SQLSRV_PHPTYPE_STREAM($encoding1) Flux
SQLSRV_PHPTYPE_STRING($encoding1) String
  1. SQLSRV_PHPTYPE_STREAM et SQLSRV_PHPTYPE_STRING acceptent un paramètre qui spécifie l’encodage du flux. Le tableau suivant répertorie les constantes SQLSRV qui sont des paramètres acceptables et fournit une description de l’encodage correspondant.
Constante SQLSRV Description
SQLSRV_ENC_BINARY Les données sont retournées à partir du serveur sous la forme d’un flux d’octets bruts sans encodage ni traduction.
SQLSRV_ENC_CHAR Les données sont retournées sous forme de caractères huit bits comme spécifié dans la page de codes des paramètres régionaux Windows définis sur le système. Les caractères multioctets ou les caractères non mappés dans cette page de codes sont remplacés par un point d’interrogation (?) à un octet.

Il s’agit de l’encodage par défaut.
“UTF-8” Les données sont retournées au format d’encodage UTF-8. Cette constante a été ajoutée dans la version 1.1 du Pilotes Microsoft SQL Server pour PHP. Pour plus d’informations sur la prise en charge du format UTF-8, consultez Procédure : envoyer et récupérer des données UTF-8 à l’aide de la prise en charge UTF-8 intégrée.

Notes

Quand vous utilisez SQLSRV_PHPTYPE_STREAM ou SQLSRV_PHPTYPE_STRING, vous devez spécifier l’encodage. Si vous ne fournissez aucun paramètre, une erreur est retournée.

Pour plus d’informations sur ces constantes, consultez Procédure : spécifier des types de données PHP, Procédure : récupérer des données caractères sous la forme d’un flux à l’aide du pilote SQLSRV.

Constantes SQLTYPE

Le tableau suivant répertorie les constantes utilisées pour décrire des types de données SQL Server. Certaines constantes se comportent comme des fonctions et prennent des paramètres correspondant à la précision, à l’échelle ou à la longueur. Si vous liez des paramètres, utilisez les constantes de type fonction. Pour les comparaisons de type, les constantes standard (qui ne sont pas de type fonction) sont requises. Pour plus d’informations sur les types de données SQL Server, consultez Types de données (Transact-SQL). Pour plus d’informations sur la précision, l’échelle et la longueur, consultez Précision, échelle et longueur (Transact-SQL).

Constante SQLSRV Type de données SQL Server
SQLSRV_SQLTYPE_BIGINT bigint
SQLSRV_SQLTYPE_BINARY binary
SQLSRV_SQLTYPE_BIT bit
SQLSRV_SQLTYPE_CHAR char5
SQLSRV_SQLTYPE_CHAR($charCount) char
SQLSRV_SQLTYPE_DATE date4
SQLSRV_SQLTYPE_DATETIME DATETIME
SQLSRV_SQLTYPE_DATETIME2 datetime24
SQLSRV_SQLTYPE_DATETIMEOFFSET datetimeoffset4
SQLSRV_SQLTYPE_DECIMAL décimal5
SQLSRV_SQLTYPE_DECIMAL($precision, $scale) Décimal
SQLSRV_SQLTYPE_FLOAT float
SQLSRV_SQLTYPE_IMAGE image1
SQLSRV_SQLTYPE_INT int
SQLSRV_SQLTYPE_MONEY money
SQLSRV_SQLTYPE_NCHAR nchar5
SQLSRV_SQLTYPE_NCHAR($charCount) NCHAR
SQLSRV_SQLTYPE_NUMERIC numérique5
SQLSRV_SQLTYPE_NUMERIC($precision, $scale) numeric
SQLSRV_SQLTYPE_NVARCHAR nvarchar5
SQLSRV_SQLTYPE_NVARCHAR($charCount) NVARCHAR
SQLSRV_SQLTYPE_NVARCHAR(’max’) nvarchar(MAX)
SQLSRV_SQLTYPE_NTEXT ntext2
SQLSRV_SQLTYPE_REAL real
SQLSRV_SQLTYPE_SMALLDATETIME smalldatetime
SQLSRV_SQLTYPE_SMALLINT SMALLINT
SQLSRV_SQLTYPE_SMALLMONEY SMALLMONEY
SQLSRV_SQLTYPE_TEXT text3
SQLSRV_SQLTYPE_TIME time4
SQLSRV_SQLTYPE_TIMESTAMP timestamp
SQLSRV_SQLTYPE_TINYINT TINYINT
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER UNIQUEIDENTIFIER
SQLSRV_SQLTYPE_UDT UDT
SQLSRV_SQLTYPE_VARBINARY varbinary5
SQLSRV_SQLTYPE_VARBINARY($byteCount) varbinary
SQLSRV_SQLTYPE_VARBINARY(’max’) varbinary(MAX)
SQLSRV_SQLTYPE_VARCHAR varchar5
SQLSRV_SQLTYPE_VARCHAR($charCount) varchar
SQLSRV_SQLTYPE_VARCHAR(’max’) varchar(MAX)
SQLSRV_SQLTYPE_XML Xml
  1. Il s’agit d’un type hérité mappé sur le type varbinary(max).

  2. Il s’agit d’un type hérité mappé sur le type nvarchar plus récent.

  3. Il s’agit d’un type hérité mappé sur le type varchar plus récent.

  4. La prise en charge de ce type a été ajouté dans la version 1.1 du Pilotes Microsoft SQL Server pour PHP.

  5. Ces constantes doivent être utilisées dans les opérations de comparaison de type et ne remplacent pas les constantes de type fonction par une syntaxe similaire. Pour les paramètres de liaison, utilisez les constantes de type fonction.

Le tableau suivant répertorie les constantes SQLTYPE qui acceptent des paramètres, ainsi que la plage des valeurs autorisées pour ces paramètres.

SQLTYPE Paramètre Plage autorisée pour le paramètre
SQLSRV_SQLTYPE_CHAR,

SQLSRV_SQLTYPE_VARCHAR
charCount 1 - 8000
SQLSRV_SQLTYPE_NCHAR,

SQLSRV_SQLTYPE_NVARCHAR
charCount 1 - 4000
SQLSRV_SQLTYPE_BINARY,

SQLSRV_SQLTYPE_VARBINARY
byteCount 1 - 8000
SQLSRV_SQLTYPE_DECIMAL,

SQLSRV_SQLTYPE_NUMERIC
précision 1 - 38
SQLSRV_SQLTYPE_DECIMAL,

SQLSRV_SQLTYPE_NUMERIC
scale 1 - précision

Constantes de niveau d’isolation de la transaction

La clé TransactionIsolation , qui est utilisé avec sqlsrv_connect, accepte l’une des constantes suivantes :

  • SQLSRV_TXN_READ_UNCOMMITTED

  • SQLSRV_TXN_READ_COMMITTED

  • SQLSRV_TXN_REPEATABLE_READ

  • SQLSRV_TXN_SNAPSHOT

  • SQLSRV_TXN_SERIALIZABLE

Constantes de défilement et curseur

Les constantes suivantes spécifient le type de curseur que vous pouvez utiliser dans un jeu de résultats :

  • SQLSRV_CURSOR_FORWARD

  • SQLSRV_CURSOR_STATIC

  • SQLSRV_CURSOR_DYNAMIC

  • SQLSRV_CURSOR_KEYSET

  • SQLSRV_CURSOR_CLIENT_BUFFERED

Les constantes suivantes spécifient la ligne à sélectionner dans le jeu de résultats :

  • SQLSRV_SCROLL_NEXT

  • SQLSRV_SCROLL_PRIOR

  • SQLSRV_SCROLL_FIRST

  • SQLSRV_SCROLL_LAST

  • SQLSRV_SCROLL_ABSOLUTE

  • SQLSRV_SCROLL_RELATIVE

Pour plus d’informations sur l’utilisation de ces constantes, consultez Specifying a Cursor Type and Selecting Rows.

Voir aussi

Informations de référence sur l’API du pilote SQLSRV