Constantes (controladores de Microsoft para PHP para SQL Server)

Descargar controlador PHP

En este tema se analizan las constantes definidas por los Controladores de Microsoft para PHP para SQL Server.

Constantes del controlador PDO_SQLSRV

Las constantes incluidas en el sitio web de PDO son válidas para los Controladores de Microsoft para PHP para SQL Server.

En las siguientes secciones, se describen las constantes específicas de Microsoft del controlador PDO_SQLSRV.

Constantes de nivel de aislamiento de transacción

La clave TransactionIsolation , que se usa con PDO::__construct, acepta una de las siguientes constantes:

  • PDO::SQLSRV_TXN_READ_UNCOMMITTED

  • PDO::SQLSRV_TXN_READ_COMMITTED

  • PDO::SQLSRV_TXN_REPEATABLE_READ

  • PDO::SQLSRV_TXN_SNAPSHOT

  • PDO::SQLSRV_TXN_SERIALIZABLE

Para obtener más información sobre la clave TransactionIsolation , consulte Connection Options.

Constantes de codificación

El atributo PDO::SQLSRV_ATTR_ENCODING puede transmitirse a PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn y PDOStatement::bindParam.

Los valores disponibles para transmitir a PDO::SQLSRV_ATTR_ENCODING son los siguientes:

Constante del controlador PDO_SQLSRV Descripción
PDO::SQLSRV_ENCODING_BINARY Los datos son una secuencia de bytes sin procesar procedentes del servidor, sin que se realicen procesos de codificación o traducción.

No válida para PDO::setAttribute.
PDO::SQLSRV_ENCODING_SYSTEM Los datos son caracteres de 8 bits tal y como se especifica en la página de códigos de la configuración regional de Windows establecida en el sistema. Los caracteres multibyte, o aquellos que no tengan una correspondencia con esta página de códigos, se sustituyen por un carácter de signo de interrogación de cierre (?) de un solo byte.
PDO::SQLSRV_ENCODING_UTF8 Los datos presentan la codificación UTF-8. Esta es la codificación predeterminada.
PDO::SQLSRV_ENCODING_DEFAULT Utiliza PDO::SQLSRV_ENCODING_SYSTEM si se especifica durante la conexión.

Utiliza la codificación de la conexión si se especifica en una instrucción prepare.

Tiempo de espera de la consulta

El atributo PDO::SQLSRV_ATTR_QUERY_TIMEOUT es cualquier número entero no negativo que represente el período de tiempo de espera, en segundos. Cero (0) es el valor predeterminado y significa que no hay tiempo de espera.

Puede especificar el atributo PDO::SQLSRV_ATTR_QUERY_TIMEOUT con PDOStatement::setAttribute, PDO::setAttribute y PDO::prepare.

Ejecución directa o preparada

Puede seleccionar la ejecución de la consulta directa o la ejecución de la instrucción preparada con el atributo PDO::SQLSRV_ATTR_DIRECT_QUERY. PDO::SQLSRV_ATTR_DIRECT_QUERY puede definirse con PDO::prepare o PDO::setAttribute. Para obtener más información sobre PDO::SQLSRV_ATTR_DIRECT_QUERY, vea Direct Statement Execution and Prepared Statement Execution in the PDO_SQLSRV Driver (Ejecución de la instrucción preparada o directa en el controlador PDO_SQLSRV).

Control de capturas numéricas

El atributo PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE se puede usar para controlar las capturas numéricas de columnas con tipos SQL numéricos (bit, integer, smallint, tinyint, float y real). Cuando PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE está establecido en true, los resultados de una columna de enteros se representan como ints, mientras que los valores float y real de SQL se representan como valores flotantes. Este atributo se puede establecer con PDOStatement::setAttribute.

Puede modificar el comportamiento del formato decimal predeterminado con los atributos PDO::SQLSRV_ATTR_FORMAT_DECIMALS y PDO::SQLSRV_ATTR_DECIMAL_PLACES. El comportamiento de estos atributos es idéntico a las opciones correspondientes en el lado de SQLSRV (FormatDecimals y DecimalPlaces), salvo que no se admiten parámetros de salida para el formato. Estos atributos se pueden establecer en el nivel de conexión o de instrucción con PDO::setAttribute o PDOStatement::setAttribute, pero cualquier atributo de instrucción invalidará el atributo de conexión correspondiente. Para más información, vea Aplicación de formato a cadenas decimales y valores de moneda (controlador PDO_SQLSRV).

Control de las recuperaciones de fecha y hora

PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE especifica si se deben recuperar los tipos de fecha y hora como objetos PHP DateTime. Si el valor se deja como false, el comportamiento predeterminado es devolverlos como cadenas. Este atributo se puede establecer en el nivel de conexión o de instrucción con PDO::setAttribute o PDOStatement::setAttribute, pero el atributo de instrucción invalidará el atributo de conexión correspondiente. Para más información, vea: Cómo: Recuperación de los tipos de fecha y hora como objetos de fecha y hora PHP mediante el controlador PDO_SQLSRV.

SQLSRV

En las siguientes secciones se incluyen las constantes que utiliza el controlador SQLSRV.

Constantes de ERR

En la siguiente tabla se indican las constantes que se utilizan para especificar si sqlsrv_errors devuelve errores, advertencias o ambos.

Value Descripción
SQLSRV_ERR_ALL Se devuelven los errores y las advertencias generados en la última llamada a una función de sqlsrv . Este es el valor predeterminado.
SQLSRV_ERR_ERRORS Se devuelven los errores generados en la última llamada a una función de sqlsrv .
SQLSRV_ERR_WARNINGS Se devuelven las advertencias generadas en la última llamada a una función de sqlsrv .

Constantes de FETCH

En la siguiente tabla se incluyen las constantes que se utilizan para especificar el tipo de la matriz devuelta por sqlsrv_fetch_array.

Constante de SQLSRV Descripción
SQLSRV_FETCH_ASSOC sqlsrv_fetch_array devuelve la siguiente fila de datos como una matriz asociativa.
SQLSRV_FETCH_BOTH sqlsrv_fetch_array devuelve la siguiente fila de datos como una matriz con claves tanto numéricas como asociativas. Este es el valor predeterminado.
SQLSRV_FETCH_NUMERIC sqlsrv_fetch_array devuelve la siguiente fila de datos como una matriz indexada numéricamente.

Constantes de registro

En esta sección se incluyen las constantes que se usan para cambiar la configuración de registro con sqlsrv_configure. Para obtener más información sobre la actividad de registro, consulte Logging Activity.

En la siguiente tabla se incluyen las constantes que se pueden utilizar como el valor de la configuración LogSubsystems :

Constante SQLSRV (equivalente entero entre paréntesis) Descripción
SQLSRV_LOG_SYSTEM_ALL (-1) Activa el registro de todos los subsistemas.
SQLSRV_LOG_SYSTEM_CONN (2) Activa el registro de la actividad de conexión.
SQLSRV_LOG_SYSTEM_INIT (1) Activa el registro de la actividad de inicialización.
SQLSRV_LOG_SYSTEM_OFF (0) Desactiva el registro.
SQLSRV_LOG_SYSTEM_STMT (4) Activa el registro de la actividad de instrucción.
SQLSRV_LOG_SYSTEM_UTIL (8) Activa el registro de la actividad de funciones de error (como handle_error y handle_warning).

En la tabla siguiente se incluyen las constantes que se pueden utilizar como el valor de la configuración LogSeverity :

Constante SQLSRV (equivalente entero entre paréntesis) Descripción
SQLSRV_LOG_SEVERITY_ALL (-1) Especifica que se registrarán errores, advertencias y avisos.
SQLSRV_LOG_SEVERITY_ERROR (1) Especifica que se registrarán los errores.
SQLSRV_LOG_SEVERITY_NOTICE (4) Especifica que se registrarán los avisos.
SQLSRV_LOG_SEVERITY_WARNING (2) Especifica que se registrarán las advertencias.

Constantes que admiten valores NULL

En la siguiente tabla se muestran las constantes que puede usar para determinar si una columna admite valores NULL o no, o si esta información no está disponible. Puede comparar el valor de la clave Nullable que devuelve sqlsrv_field_metadata para determinar el estado de admisión de valores NULL de la columna.

Constante SQLSRV (equivalente entero entre paréntesis) Descripción
SQLSRV_NULLABLE_YES (0) La columna admite valores NULL.
SQLSRV_NULLABLE_NO (1) La columna no admite valores NULL.
SQLSRV_NULLABLE_UNKNOWN (2) No se sabe si la columna admite valores NULL.

Constantes de PARAM

En la siguiente lista se enumeran las constantes para especificar la dirección del parámetro al llamar a sqlsrv_query o sqlsrv_prepare.

Constante de SQLSRV Descripción
SQLSRV_PARAM_IN Indica un parámetro de entrada.
SQLSRV_PARAM_INOUT Indica un parámetro bidireccional.
SQLSRV_PARAM_OUT Indica un parámetro de salida.

Constantes de PHPTYPE

En la siguiente tabla se muestran las constantes que se utilizan para describir tipos de datos PHP. Para obtener información sobre los tipos de datos PHP, vea Tipos de PHP.

Constante de SQLSRV Tipo de datos PHP
SQLSRV_PHPTYPE_INT Entero
SQLSRV_PHPTYPE_DATETIME Datetime
SQLSRV_PHPTYPE_FLOAT Float
SQLSRV_PHPTYPE_STREAM($encoding1) Transmitir
SQLSRV_PHPTYPE_STRING($encoding1) String
  1. SQLSRV_PHPTYPE_STREAM y SQLSRV_PHPTYPE_STRING aceptan un parámetro que especifique la codificación de la secuencia. En la siguiente tabla se indican las constantes de SQLSRV que constituyen parámetros aceptables y una descripción de la codificación correspondiente.
Constante de SQLSRV Descripción
SQLSRV_ENC_BINARY Los datos se devuelven del servidor como una secuencia de bytes sin procesar, sin que se realicen procesos de codificación o traducción.
SQLSRV_ENC_CHAR Los datos se devuelven en caracteres de 8 bits tal y como se especifica en la página de códigos de la configuración regional de Windows establecida en el sistema. Los caracteres multibyte, o aquellos que no tengan una correspondencia con esta página de códigos, se sustituyen por un carácter de signo de interrogación de cierre (?) de un solo byte.

Esta es la codificación predeterminada.
"UTF-8" Los datos se devuelven con la codificación UTF-8. Esta constante se agregó en la versión 1.1 de los Controladores de Microsoft para PHP para SQL Server. Para obtener más información sobre la compatibilidad con UTF-8, vea Cómo enviar y recuperar datos UTF-8 gracias a la compatibilidad integrada con UTF-8.

Nota:

Cuando use SQLSRV_PHPTYPE_STREAM o SQLSRV_PHPTYPE_STRING, debe especificar la codificación. Si no se proporciona ningún parámetro, se devolverá un error.

Para obtener más información sobre estas constantes, vea Cómo especificar tipos de datos PHPy Cómo recuperar datos de caracteres como una secuencia usando el controlador SQLSRV.

Constantes de SQLTYPE

En la siguiente tabla se muestran las constantes que se utilizan para describir tipos de datos de SQL Server. Algunas constantes son de tipo función y pueden tomar parámetros que corresponden a la precisión, la escala y la longitud. Al enlazar parámetros, se deben usar las constantes de tipo función. En el caso de las comparaciones de tipos, se requieren las constantes estándar (no similares a las funciones). Para obtener información sobre los tipos de datos de SQL Server, vea Tipos de datos (Transact-SQL). Para obtener información sobre la precisión, la escala y la longitud, vea Precisión, escala y longitud (Transact-SQL).

Constante de SQLSRV Tipos de datos de 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 decimal5
SQLSRV_SQLTYPE_DECIMAL($precision, $scale) Decimal
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 numeric5
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. Se trata de un tipo heredado que se asigna al tipo varbinary(max).

  2. Se trata de un tipo heredado que se asigna al tipo nvarchar más reciente.

  3. Se trata de un tipo heredado que se asigna al tipo varchar más reciente.

  4. La compatibilidad con este tipo se agregó en la versión 1.1 de los Controladores de Microsoft para PHP para SQL Server.

  5. Estas constantes se deben usar en las operaciones de comparación de tipos y no se deben reemplazar las constantes de tipo función con una sintaxis parecida. En el caso de los parámetros de enlace, debe usar las constantes de tipo función.

En la siguiente tabla se incluyen las constantes de SQLTYPE que aceptan parámetros y el intervalo de valores permitidos para cada parámetro.

SQLTYPE Parámetro Intervalo permitido para el parámetro
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
Precisión 1 - 38
SQLSRV_SQLTYPE_DECIMAL,

SQLSRV_SQLTYPE_NUMERIC
scale 1–precisión

Constantes de nivel de aislamiento de transacción

La clave TransactionIsolation , que se usa con sqlsrv_connect, acepta una de las siguientes constantes:

  • SQLSRV_TXN_READ_UNCOMMITTED

  • SQLSRV_TXN_READ_COMMITTED

  • SQLSRV_TXN_REPEATABLE_READ

  • SQLSRV_TXN_SNAPSHOT

  • SQLSRV_TXN_SERIALIZABLE

Constantes de cursor y desplazamiento

Las siguientes constantes especifican el tipo de cursor que puede usar en un conjunto de resultados:

  • SQLSRV_CURSOR_FORWARD

  • SQLSRV_CURSOR_STATIC

  • SQLSRV_CURSOR_DYNAMIC

  • SQLSRV_CURSOR_KEYSET

  • SQLSRV_CURSOR_CLIENT_BUFFERED

Las siguientes constantes especifican qué fila se debe seleccionar en el conjunto de resultados:

  • SQLSRV_SCROLL_NEXT

  • SQLSRV_SCROLL_PRIOR

  • SQLSRV_SCROLL_FIRST

  • SQLSRV_SCROLL_LAST

  • SQLSRV_SCROLL_ABSOLUTE

  • SQLSRV_SCROLL_RELATIVE

Para obtener información sobre cómo usar estas constantes, consulte Specifying a Cursor Type and Selecting Rows.

Consulte también

Referencia de API del controlador SQLSRV