Constantes (controladores de Microsoft para PHP para SQL Server)
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 |
- 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 |
Se trata de un tipo heredado que se asigna al tipo varbinary(max).
Se trata de un tipo heredado que se asigna al tipo nvarchar más reciente.
Se trata de un tipo heredado que se asigna al tipo varchar más reciente.
La compatibilidad con este tipo se agregó en la versión 1.1 de los Controladores de Microsoft para PHP para SQL Server.
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.