PHP 8.5.0 Alpha 1 available for testing

sqlsrv_connect

(No version information available, might only be in Git)

sqlsrv_connectEstablece una conexión con una base de datos Microsoft SQL Server

Descripción

sqlsrv_connect(string $serverName, array $connectionInfo = ?): resource

Establece una conexión con una base de datos Microsoft SQL Server. Por omisión, la conexión intenta utilizar la autenticación Windows. Para conectarse utilizando la autenticación SQL Server, se deben añadir los argumentos "UID" y "PWD" en el array de opciones de conexión.

Parámetros

serverName

El nombre del servidor con el que se desea establecer la conexión. Para conectarse a una instancia particular, se debe especificar el nombre del servidor, seguido de un antislash, y luego el nombre de la instancia (i.e. serverName\sqlexpress).

connectionInfo

Un array asociativo que especifica las opciones para la conexión al servidor. Si los valores de las claves UID y PWD no están especificados, la conexión intentará utilizar la autenticación Windows. Para una lista completa de las claves soportadas, consulte las » opciones de conexión SQLSRV.

Valores devueltos

Un recurso de conexión. Si la conexión no pudo ser abierta, se retornará false.

Ejemplos

Ejemplo #1 Conexión utilizando la autenticación Windows.

<?php
$serverName
= "serverName\\sqlexpress"; //serverName\instanceName

// Dado que UID y PWD no están especificados en el array $connectionInfo,
// la conexión intentará utilizar la autenticación Windows.
$connectionInfo = array( "Database"=>"dbName");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if(
$conn ) {
echo
"Conexión establecida.<br />";
}else{
echo
"La conexión no pudo ser establecida.<br />";
die(
print_r( sqlsrv_errors(), true));
}
?>

Ejemplo #2 Conexión especificando un nombre de usuario y una contraseña.

<?php
$serverName
= "serverName\\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if(
$conn ) {
echo
"Conexión establecida.<br />";
}else{
echo
"La conexión no pudo ser establecida.<br />";
die(
print_r( sqlsrv_errors(), true));
}
?>

Ejemplo #3 Conexión a un puerto específico.

<?php
$serverName
= "serverName\\sqlexpress, 1542"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if(
$conn ) {
echo
"Conexión establecida.<br />";
}else{
echo
"La conexión no pudo ser establecida.<br />";
die(
print_r( sqlsrv_errors(), true));
}
?>

Notas

Por omisión, la función sqlsrv_connect() utiliza la cola de conexiones para aumentar el rendimiento. Para desactivar esta cola de conexiones (i.e. y así, forzar una nueva conexión en cada llamada a la función), se debe definir la opción "ConnectionPooling" en el array $connectionOptions a 0 (o false). Para más información, consulte el capítulo sobre la » cola de conexiones SQLSRV.

La extensión SQLSRV no tiene una función dedicada para modificar la base de datos a la que está conectada. La base de datos objetivo se especifica en el array $connectionOptions pasado a la función sqlsrv_connect. Para cambiar la base de datos en una conexión abierta, se debe ejecutar la siguiente consulta: "USE dbName" (i.e. sqlsrv_query($conn, "USE dbName")).

Ver también

  • sqlsrv_close() - Cierra una conexión abierta y libera los recursos asociados a la conexión
  • sqlsrv_errors() - Devuelve información de errores y alertas (warnings) de la última operación SQLSRV realizada
  • sqlsrv_query() - Prepara y ejecuta una consulta

add a note

User Contributed Notes 2 notes

up
5
alvaro at demogracia dot com
8 years ago
You can use the connectionInfo parameter to specify connection encoding, e.g.:

<?php
$connectionInfo
= [
'CharacterSet' => 'UTF-8',
];
$conn = sqlsrv_connect($serverName, $connectionInfo);
?>

Beware though that only two options exist:
- SQLSRV_ENC_CHAR (constant) for ANSI, which is the default
- 'UTF-8' (string) for Unicode
up
4
Eion Robb
9 years ago
As mentioned at https://msdn.microsoft.com/en-us/library/cc296193.aspx the connection will convert some data into PHP data types. Of particular difference to other database functions in PHP is that dates will be output as objects instead of strings.

To make the sqlsrv_fetch_{array|object}() functions return dates/times/datetimes as strings instead, specify:
'ReturnDatesAsStrings' => true
in the $connectionInfo array.

For more info about this behaviour, see https://msdn.microsoft.com/en-us/library/ee376928.aspx
To Top