Empezaré con una serie de publicaciones sobre el tema del acceso a datos en servidores SQL Server empleando PHP, para ello se supone que ya se tienen configurados el servidor de base de datos (MS SQL Server), el servidor Web (IIS Ver u otro) y se tiene instalado y configurado el intérprete PHP (Ver) en tal servidor así como el driver MSSQLServer para PHP (Ver).
Para acceder a las bases de datos que están en un servidor SQL Server es necesario como en casi todos los servidores, establecer una conexión, realizar la transacción (o transacciones) y cerrar la conexión, luego de lo cuál podemos procesar los datos obtenidos y producir la información necesaria. En esta primera entrega me dedicaré a explicar un poco cómo se realiza la conexión y para ello nada mejor que un poco de código.
1: //Crear la conexión
2: $srv="(local)SQLEXPRESS";
3: $opc=array("Database"=>"AdventureWorks", "UID"=>"tester", "PWD"=>"ah49*(08h");
4: $con=sqlsrv_connect($srv,$opc) or die("No se pudo abrir la conexión");
En la línea 2, se crea una variable para almacenar el nombre del servidor al que nos vamos a conectar, en este caso el servidor local y la instancia SQLEXPRESS, en la línea 3 definimos 3 parámetros (existen varios más que se explicarán más adelante), el primero Database que indica la base de datos que se seleccionará al hacer la conexión; UID que indica el usuario con el que se accedará a la base de datos y finalmente PWD que contiene la contraseña. Finalmente la línea 4 crea la conexión mediante el uso de sqlsrv_connect, esta función es la que permite conectarse al servidor y recibe al menos 1 parámetro, el nombre del servidor, el segundo parámetro es opcional y es un arreglo (array) con los parámetros de la conexión, algunos de tales parámetros son:
- AttachDBFileName: se usa para especificar el archivo de base de datos que se asocia al servidor.
- CharacterSet: especifica el conjunto de caracteres que se utilizarán (No funciona con el driver PDO).
- ConnectionPooling: indica si la conexión se asigna desde un pool de conexiones o no, y toma los valores 1 o true para indicar que se usa el pool y 0 o false en caso contrario.
- Database: es una cadena que indica la base de datos que se selecciona al establecer la conexión.
- Encrypt: establece si la conexión es encriptada o no, 1 o true indica que lo está y 0 o false lo contrario.
- PWD: especifica la contraseña asociada al usuario SQL Server (No funciona con el driver PDO).
- UID: especifica el usuario SQL Server (No funciona con el driver PDO).
Para otras opciones puede visitar https://msdn.microsoft.com/en-us/library/ff628167.aspx.
Como ya se había comentado el parámetro con las opciones no es necesario sin embargo es bastante útil a la hora de establecer por ejemplo, la base de datos a la que se desea conectar en el servidor SQL Server.
Otra forma de definir el servidor consiste en especificar el nombre del servidor y el puerto al que se desea conectar, por ejemplo: $srv="SQLServer,2323";
también es importante destacar que de forma predeterminada el driver intentará establecer la conexión utilizando las credenciales de Windows (Windows Authentication).
Esperando que le haya sido de utilidad, hasta la próxima entrega.
Pingback: Accesando a Bases de datos SQL Server con PHP (1) | Eliel Aguilera's Blog