How To: Configurar PHP (XAMPP) con una base de datos SQL Server

Para la prueba de esto se utilizó:

  • PHP Version 5.6.23
  • Apache 2.4.17
  • XAMPP Control Panel Version 3.2.2

Se requiere las 2 archivos de librerías, dependiendo de la versión de tu PHP, para mi caso:

  • SQLSRV32.exe (copiar: php_sqlsrv_56_ts.dll, php_pdo_sqlsrv_56_ts.dll) en la ruta: C:\XAMPP\PHP\EXT\
  • Instalar en donde esta el XAMPP, el ODBC Driver 11 for SQL Server, según versión 32bit o 64bit de S.O. Windows (Actualizado: Febrero 2017)

Pasos:

  1. Parar el servicio Apache en “xampp-control”,
  2. Editar el archivo “php.ini”,
  3. Agregar las lineas en el módulo extensiones dinámicas
  4. Iniciar Apache y verificar.
Editando "php.ini" desde el XAMPP.

Editando “php.ini” desde el XAMPP.

Agregando extension dinamica de los DLL del SQL Server en PHP.

Agregando extension dinamica de los DLL del SQL Server en PHP.

Verificando en el PHPInfo, permita la conexión con SQL Server con la función de "sqlsrv_connect".

Verificando en el PHPInfo, permita la conexión con SQL Server con la función de “sqlsrv_connect”.

php-sqlserver

Aqui ejemplo de código en PHP que podría servir para hacer tu test de conexión:

<?php
$serverName = "192.168.1.2\MSSQLSERVER, 1433"; //serverName\instanceName, portNumber (por defecto es 1433)
$connectionInfo = array( "Database"=>"BaseDatosPrueba", "UID"=>"sa", "PWD"=>"123456");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Conexión establecida.<br />";
}else{
echo "Conexión no se pudo establecer.<br />";
die( print_r( sqlsrv_errors(), true));
}
$query = "SELECT * FROM tableTest";
$res =sqlsrv_query($conn, $query, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET ));
if (0 !== sqlsrv_num_rows($res)){
while ($fila = sqlsrv_fetch_array($res)) {
echo "Personal: ".utf8_encode($fila['nombres'])." ".utf8_encode($fila['ap_pat'])." ".utf8_encode($fila['ap_mat']);
echo "<br>";
}
}
?>

Hay que aclarar deberán cambiar la IP, el usuario y la contraseña de conexión al SQL Server. Además la base de datos “BaseDatosPrueba”, contiene una tabla “TableTest” con los campos “nombres(varchar), ap_pat (varchar), ap_mat (varchar)”,  llenar algunos registros para su prueba.

Tips:

En caso de tu versión de PHP es diferente por ejemplo 5.5, necesitarías cambiar el nombre al que invocas en el PHP.INI y obviamente los archivos en la carpeta correspondiente: php_sqlsrv_55_ts.dll, php_pdo_sqlsrv_55_ts.dll, puedes encontrar mayor información en el MSDN de Microsoft que coloco en la fuente.

Fuente:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *