lunes, 2 de septiembre de 2013

EXPERIENCIA: Configurando Microsoft SQL Server para trabajar con PHP, y algunos ejemplos

 Cuando ya tengamos nuestro servidor Apache con el PHP instalado, o bien el servidor XAMPP, se requiere instalar y configurar las librerías para poderlo conectar con MS SQL. En nuestro caso estamos haciendo uso de las siguientes versiones:

            - Apache 2.4 
            - PHP Version 5.4.7
            - Microsoft SQL Server 2012

Se debe ingresar a la página:
http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx
Y se debe de descargar el archivo Microsoft Drivers 3.0 for PHP for SQL Server




Y se instalan en el directorio ext de php, en nuestro caso es la dirección:

             c:/xampp/php/ext

Luego de esto hay que ir al archivo PHP.ini, el cual se ubica en la carpera principal de PHP en nuestro caso
             
             c:/xampp/php

En este archivo hay que encontrar el apartado de Dynamic Extensions, el cual se encuentra alrededor de la línea 960. En este apartado hay que agregar las siguientes líneas:


extension=php_pdo_sqlsrv_54_ts.dll

extension=php_sqlsrv_54_ts.dll

Y se debe activar, esto se refiere a quitarle el punto y coma a la siguiente línea


extension=php_mssql.dll

En la siguiente imagen se puede ver las tres líneas que debemos modificar



Se guardan los cambios y se reinicia el servidor Apache, y de esta manera tenemos instaladas las librerías para poder conectar PHP con Microsoft SQL Server.

Ahora veremos unos breves ejemplos de la conexión 

Para realizar la conexión seguimos el siguiente código que se puede encontrar en la documentación oficial de la librería:

<?php
$serverName = "Servidor";   // Nombre del servidor
$connectionInfo = array( "Database"=>"Nombre de la Base de Datos");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
// Puesto que no se han especificado UID ni PWD en el array  $connectionInfo,
// La conexión se intentará utilizando la autenticación Windows. Se puede insertar el nombre y la contraseña, añadiéndolos separados de una coma, para ingresar con el otro modo de autentificación

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


?>

El siguiente ejemplo que veremos es con la llamada de un store procedure:

$tsql_callSP = "{call eliminarPersona( ?)}";    // Nombre del procedure, cada ? es un                                                                                                     parámetro
$Id = 3;
$vacationHrs = 1;

/* Array para agregar los parámetros, si el procedure devuelve algo es un PARAM_OUT
$params = array(
                 array($Id, SQLSRV_PARAM_IN)
               );

$stmt3 = sqlsrv_query( $conn, $tsql_callSP, $params);   /*Ejecuta el procedimiento*/
if( $stmt3 === false )
{
     echo "Error in executing statement 3.\n";
     die( print_r( sqlsrv_errors(), true));         /* Imprime el tipo de error */
}

sqlsrv_next_result($stmt3);                             /*Esto es por si el procedure retorna algo se trabaja de esta manera*/
echo "Remaining vacation hours: ".$vacationHrs;

sqlsrv_free_stmt( $stmt3); // Se liberan recursos


sqlsrv_close( $conn);   // Se cierra la conexión 


Con estos dos pequeños ejemplos, sirven como base para realizar cualquier conexión y hacer la llamada a un store procedure, para mas información se puede acceder a la dirección:
http://technet.microsoft.com/en-us/library/cc644932(v=sql.105).aspx donde se encontrara también como realizar la llamada de una instruccion.

Cristian Araya
David Vargas

Horas Trabajadas : 4horas

No hay comentarios:

Publicar un comentario