Opciones de conexión

Descargar controlador PHP

En este tema se enumeran las opciones que se permiten en la matriz asociativa (al usar sqlsrv_connect en el controlador SQLSRV) o las palabras clave permitidas en el nombre del origen de datos (DSN) (al usar PDO::__construct en el controlador PDO_SQLSRV).

Tabla de las opciones de conexión

Clave Valor Descripción Valor predeterminado
AccessToken Cadena La secuencia de bytes del token de acceso de Microsoft Entra extraída de una respuesta JSON de OAuth.

La cadena de conexión no debe contener un identificador de usuario, una contraseña o la palabra clave Authentication. Para obtener más información, consulta Conectar mediante la autenticación de Microsoft Entra

Cuando se habilita la agrupación de conexiones, el controlador aplica un hash al contenido del token y lo anexa a la APP palabra clave para garantizar la diferenciación de clave de grupo por identidad de token (a partir de la versión 5.13.1). Si la aplicación no especifica APP, este hash aparece en la program_name columna de sys.dm_exec_sessions.
Sin establecer.
APLICACIÓN Cadena Especifica el nombre de aplicación que se utiliza en el seguimiento. Cuando AccessToken se especifica con la agrupación de conexiones habilitada, el controlador anexa un hash interno a APP para la diferenciación de clave de grupo. Establecer un valor para APP invalida el AccessToken hash que aparece en la program_name columna de sys.dm_exec_sessions. Sin establecer
IntenciónDeAplicación Cadena Declara el tipo de carga de trabajo de la aplicación al conectarse a un servidor. Los valores posibles son ReadOnly y ReadWrite.

Para más información sobre la compatibilidad con controladores de Microsoft para PHP en SQL Server para grupos de disponibilidad AlwaysOn, consulte Compatibilidad con alta disponibilidad y recuperación ante desastres.
ReadWrite
AttachDBFileName Cadena Especifica qué archivo de base de datos debe asociar el servidor. No configurado.
Autenticación Una de las cadenas siguientes:

SqlPassword

ActiveDirectoryPassword [OBSOLETO]

ActiveDirectoryMsi

ActiveDirectoryServicePrincipal
Especifica el modo de autenticación.

Para obtener más información, consulta Conectar mediante la autenticación de Microsoft Entra
No configurado
Conjunto de Caracteres

(no compatible con el controlador PDO_SQLSRV)
Cadena Especifica el juego de caracteres que se utiliza para enviar datos al servidor.

Los valores posibles son SQLSRV_ENC_CHAR y UTF-8. Para más información, vea: Cómo: Envío y recuperación de datos UTF-8 gracias a la compatibilidad integrada con UTF-8.
SQLSRV_ENC_CHAR
CifradoDeColumna Una de las cadenas siguientes:

Enabled

Deshabilitada

Cadena que identifica el protocolo de atestación y la dirección URL para la atestación del enclave.
Especifica si la característica Always Encrypted está habilitada o no. Si se especifica un protocolo de atestación y una dirección URL, Always Encrypted con enclaves seguros está habilitado, siempre que se cumplan los demás requisitos, tal y como se describe en Uso de Always Encrypted con enclaves seguros con los controladores PHP para SQL Server. Deshabilitado
ConnectionPooling 1 o true para activar la agrupación de conexiones.

0 o False para desactivar la agrupación de conexiones.
Especifica si la conexión se asigna desde una agrupación de conexiones (1 o true) o no (0 ofalse) 1. true (1)
ConnectRetryCount Un entero comprendido entre 0 y 255, ambos incluidos El número máximo de intentos de restablecer una conexión interrumpida antes de abandonar. De forma predeterminada, se realiza un solo intento de restablecer una conexión cuando se interrumpe. Un valor de 0 significa que no se intentará ninguna reconexión. 1
ConnectRetryInterval (IntervaloDeReintentoDeConexión) Un entero comprendido entre 1 y 60, ambos incluidos El tiempo, en segundos, entre los intentos de restablecer una conexión. La aplicación intentará volver a conectarse inmediatamente al detectar una conexión interrumpida y, a continuación, esperará ConnectRetryInterval segundos antes de volver a intentarlo. Esta palabra clave se omite si ConnectRetryCount es igual a 0. 10
Base de datos Cadena Especifica el nombre de la base de datos que se está utilizando para la conexión que se va a establecer2. La base de datos predeterminada para el inicio de sesión que se va a utilizar.
DecimalPlaces

(no compatible con el controlador PDO_SQLSRV)
Un entero comprendido entre 0 y 4, ambos incluidos Especifica los lugares decimales al dar formato a los valores de moneda obtenidos.

Esta opción solo funciona cuando FormatDecimals es true. Se omitirá cualquier entero negativo o un valor mayor que 4.
Precisión y escala predeterminadas
Controlador Cadena Especifica el controlador ODBC de Microsoft que se usa para comunicarse con SQL Server.

Los valores posibles son:
ODBC Driver 18 para SQL Server
Controlador ODBC 17 para SQL Server
Controlador ODBC 13 para SQL Server
Controlador ODBC 11 para SQL Server (solo Windows)
Cuando no se especifica la palabra clave Driver, los controladores de Microsoft para PHP para SQL Server intentan encontrar controladores ODBC de Microsoft compatibles en el sistema, empezando por la versión más reciente de ODBC, etc.
Cifrar 1 o true para activar el cifrado.

0 o false para desactivar el cifrado.
Especifica si la comunicación con SQL Server está cifrada (1 o true) o no cifrada (0 o false)3. false (0)
Failover_Partner Cadena Especifica el servidor y la instancia del reflejo de la base de datos (si está habilitada y configurada) que se usará cuando el servidor principal no esté disponible.

Existen restricciones en el uso de Failover_Partner con MultiSubnetFailover. Para más información, consulte Compatibilidad con alta disponibilidad y recuperación ante desastres.

Esta opción no se admite en Linux ni en macOS porque la creación de reflejo de la base de datos no es compatible con el controlador ODBC en Linux o macOS. En su lugar, use los grupos de disponibilidad Always On y establezca las opciones MultiSubnetFailover y TransparentNetworkIPResolution.
Sin establecer.
FormatDecimals

(no compatible con el controlador PDO_SQLSRV)
1 o true para dar formato a las cadenas decimales capturadas.

0 o false para el comportamiento de formato decimal predeterminado.
Especifica si se agregan ceros iniciales a las cadenas decimales cuando sea apropiado y habilita la opción DecimalPlaces para dar formato a los tipos de moneda. Si el valor se deja como false, se usa el comportamiento predeterminado de devolver la precisión exacta y omitir los ceros iniciales de los valores menores que 1.

Para obtener más información, consulte Formato de cadenas decimales y valores de moneda.
false (0)
KeyStoreAuthentication KeyVaultPassword

KeyVaultClientSecret
Método de autenticación para acceder a Azure Key Vault. Controla qué tipo de credenciales se utilizan con KeyStorePrincipalId y KeyStoreSecret. Para más información, consulte Uso de Azure Key Vault. Sin establecer.
KeyStorePrincipalId Cadena Identificador de la cuenta que busca acceder a Azure Key Vault.

Si KeyStoreAuthentication es KeyVaultPassword, este valor debe ser un nombre de usuario de Microsoft Entra.

Si KeyStoreAuthentication es KeyVaultClientSecret, este valor debe ser un id. de cliente de aplicación.
Sin establecer.
KeyStoreSecret Cadena Secreto de credencial de la cuenta que busca acceder a Azure Key Vault.

Si KeyStoreAuthentication es KeyVaultPassword, este valor debe ser una contraseña de Microsoft Entra.

Si KeyStoreAuthentication es KeyVaultClientSecret, este valor debe ser un secreto de cliente de aplicación.
No configurado.
Idioma Cadena Especifica el idioma de los mensajes que devuelve el servidor. Los idiomas disponibles se enumeran en la tabla sys.syslanguages.

Esta opción no afecta el idioma que usan los propios controladores, ya que actualmente solo está disponible en inglés, ni tampoco afecta el idioma del controlador ODBC subyacente, cuyo idioma viene determinado por la versión localizada instalada en el sistema del cliente. Por lo tanto, el cambio de esta configuración puede provocar que los mensajes se devuelvan en idiomas distintos, en función de si proceden del controlador PHP, del controlador ODBC o de SQL Server.
El valor predeterminado es el idioma establecido en SQL Server.
Tiempo de espera de inicio de sesión Integer (controlador SQLSRV)

String (controlador PDO_SQLSRV)
Especifica el número de segundos que se espera antes de que se produzca un error en el intento de conexión. Sin tiempo de espera.
MultipleActiveResultSets 1 o True para utilizar conjuntos de resultados activos múltiples.

0 o False para deshabilitar conjuntos de resultados activos múltiples.
Deshabilita o habilita explícitamente la compatibilidad con conjuntos de resultados activos múltiples (MARS).

Para más información, consulte Procedimiento para deshabilitar conjuntos de resultados activos múltiples (MARS).
verdadero (1)
MultiSubnetFailover Cadena Especifique siempre multiSubnetFailover=yes al conectarse a un agente de escucha de un grupo de disponibilidad de SQL Server 2012 (11.x) o a una instancia de clúster de conmutación por error de SQL Server 2012 (11.x). multiSubnetFailover=yes configura Controladores de Microsoft para PHP para SQL Server para proporcionar una detección más rápida y conexión con el servidor (actualmente) activo. Los valores posibles son Sí y No.

Para más información sobre la compatibilidad con controladores de Microsoft para PHP en SQL Server para grupos de disponibilidad AlwaysOn, consulte Compatibilidad con alta disponibilidad y recuperación ante desastres.
No
PWD

(no compatible con el controlador PDO_SQLSRV)
Cadena Especifica la contraseña asociada con el id. de usuario que se utilizará al conectar con la autenticación de SQL Server4. Sin establecer.
QuotedId 1 o true para usar las reglas de SQL-92.

0 o False para usar las reglas heredadas.
Especifica si quiere utilizar reglas de SQL-92 para identificadores entrecomillados (1 o true) o para usar las reglas heredadas de Transact-SQL (0 o false). true (1)
ReturnDatesAsStrings

(no compatible con el controlador PDO_SQLSRV)
1 o True para devolver tipos de fecha y hora como cadenas.

0 o false para devolver tipos de fecha y hora como DateTime de PHP.
Recupera tipos de fecha y hora (datetime, smalldatetime, date, time, datetime2 y datetimeoffset) como cadenas o como tipos de datos PHP. Para más información, vea: Cómo: Recuperación de los tipos de fecha y hora como cadenas con el controlador SQLSRV.

Al utilizar el controlador PDO_SQLSRV, las fechas se devuelven como cadenas, a menos que se especifique otra cosa. Para más información, vea Cómo recuperar los tipos de fecha y hora como objetos DateTime de PHP mediante el controlador PDO_SQLSRV.
false
Desplazable Cadena "con almacenamiento en búfer" indica que desea un cursor del lado del cliente con almacenamiento en búfer, que permite almacenar en caché un conjunto completo de resultados en memoria. Para más información, consulte Tipos de cursor (controlador SQLSRV). Cursor de avance único
Servidor

(no compatible con el controlador SQLSRV)
Cadena El nombre de la instancia de SQL Server a la que se conectará.

También puede especificar un nombre de red virtual para conectarse a un grupo de disponibilidad Always On. Para más información sobre la compatibilidad con controladores de Microsoft para PHP en SQL Server para grupos de disponibilidad AlwaysOn, consulte Compatibilidad con alta disponibilidad y recuperación ante desastres.
Server es una palabra clave obligatoria (aunque no tiene que ser la primera palabra clave de la cadena de conexión). Si no se transmite un nombre de servidor a la palabra clave, se realiza un intento para conectarse a la instancia local.

El valor transmitido al servidor puede ser el nombre de una instancia de SQL Server o la dirección IP de la instancia. Si quiere, puede especificar un número de puerto (sqlsrv:server=(local),1033por ejemplo).

A partir de la versión 3.0 de los Controladores de Microsoft para PHP para SQL Server , también puede especificar una instancia de LocalDB con server=(localdb)\instancename. Para más información, consulte Compatibilidad con LocalDB.
TraceFile Cadena Especifica la ruta de acceso del archivo utilizado para los datos de seguimiento. Sin establecer.
TraceOn 1 o True para habilitar el seguimiento.

0 o False para deshabilitar el seguimiento.
Especifica si está habilitado el seguimiento de ODBC (1 o true) o si está deshabilitado (0 o false) para la conexión que se va a establecer. false (0)
TransactionIsolation El controlador SQLSRV utiliza los siguientes valores:

SQLSRV_TXN_READ_UNCOMMITTED

SQLSRV_TXN_READ_COMMITTED

SQLSRV_TXN_REPEATABLE_READ

SQLSRV_TXN_SNAPSHOT

SQLSRV_TXN_SERIALIZABLE

El controlador PDO_SQLSRV utiliza los siguientes valores:

PDO::SQLSRV_TXN_READ_UNCOMMITTED

PDO::SQLSRV_TXN_READ_COMMITTED

PDO::SQLSRV_TXN_REPEATABLE_READ

PDO::SQLSRV_TXN_SNAPSHOT

PDO::SQLSRV_TXN_SERIALIZABLE
Especifica el nivel de aislamiento de la transacción.

Para obtener más información sobre el aislamiento de transacciones, vea SET TRANSACTION ISOLATION LEVEL en la documentación de SQL Server.
SQLSRV_TXN_READ_COMMITTED

o

PDO::SQLSRV_TXN_READ_COMMITTED
Resolución de IP de Red Transparente Habilitado o Deshabilitado Afecta la secuencia de conexión cuando la primera dirección IP resuelta del nombre de host no responde y hay varias direcciones IP asociadas con el nombre de host.

Interactúa con MultiSubnetFailover para proporcionar secuencias de conexión distintas. Para más información, consulte Resolución de IP de red transparente o Uso de resolución de IP de red transparente.
Activado
TrustServerCertificate 1 o True para confiar en certificado.

0 o False para no confiar en el certificado.
Especifica si el cliente debe confiar (1 o true) o rechazar (0 o false) un certificado de servidor autofirmado. false (0)
UID

(no compatible con el controlador PDO_SQLSRV)
Cadena Especifica el id. de usuario que se utilizará al conectarse con la autenticación de SQL Server4. Sin establecer.
WSID Cadena Especifica el nombre del equipo del que se realizará el seguimiento. Sin establecer.
  1. No se puede usar el atributo ConnectionPooling para habilitar o deshabilitar la agrupación de conexiones en Linux y macOS. Vea Agrupación de conexiones (controladores de Microsoft para PHP para SQL Server).

  2. Todas las consultas ejecutadas en la conexión establecida se realizan en la base de datos que especifica el atributo Database. Sin embargo, si el usuario tiene los permisos adecuados, se puede acceder a los datos de otras bases de datos mediante un nombre completamente calificado. Por ejemplo, si la base de datos master se establece con el atributo de conexión Database, todavía es posible ejecutar una consulta de Transact-SQL que accede a la tabla AdventureWorks.HumanResources.Employee mediante el nombre completo.

  3. Si se habilita Encryption, puede afectar al rendimiento de algunas aplicaciones debido a la sobrecarga computacional que se precisa para cifrar los datos.

  4. Deben establecerse los atributos UID y PWD al realizar la conexión con la autenticación de SQL Server.

Muchas de las claves admitidas son atributos de cadena de conexión ODBC. Para obtener información sobre las cadenas de conexión ODBC, vea Usar palabras clave de cadena de conexión con SQL Server Native Client.

Consulte también

Conexión al servidor