Ver Mensaje Individual
  #10 (permalink)  
Antiguo 14/11/2012, 15:40
Fozziepupus
 
Fecha de Ingreso: julio-2010
Mensajes: 23
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Respuesta: Conectarse a MS-SQL Server 2008 desde PHP

Cita:
Iniciado por ruxee Ver Mensaje
Estuve buscando como conectarme al SQLServer 2008 R2 desde php y por mas que busque no encontré ningun post que ayudara y explicara. Finalmente luego de casi un dia logre hacerlo y comparto para que no pierdan mas tiempo.

Mi ambiente:
XAMPP 2.5
Windows Vista
Microsoft SQL Server 2008 R2

Pasos:
  1. Obtener el entorno bajo el cual esta funcionando mi servidor, para esto debo:
    • Abrir mi PHP info en [URL="http://localhost/xampp/"]http://localhost/xampp/[/URL]
    • tomar nota del valor de Thread Safety, en mi caso =enabled
    • Tomar el valor de la version de PHP, en mi caso 5.3.8
    • Tomar el valor de Compiler, en mi caso VC9
  2. Descargar de Microsoft los drivers respectivos. Los podes hallar en [URL="http://www.microsoft.com/download/en/details.aspx?id=17308"]http://www.microsoft.com/download/en/details.aspx?id=17308[/URL] Microsoft Drivers 3.0 for SQL Server for PHP CTP1.
  3. Instalar los drivers en el directorio donde esta xampp. En mi caso esta en c:/xampp/php/ext
  4. Luego buscar en esos directorios los archivos instalados, que debieran ser similares a php_sqlsrv_53_ts_vc9.dll donde:
    • 53 -> indica el version de mi PHP=5.3.x
    • ts -> significa que el para entorno THREAD-SAFE=enabled
    • vc9 -> indica que el compilador de mi PHP es VC9
    • Entonces tomo nota del nombre del archivo correspondiente php_sqlsrv_53_ts_vc9.dll
  5. Editar el PHP.ini que en mi caso está en c:/xampp/php, donde:
    • Busco el inicio del segmento Dynamic Extensions
    • Al final del segmento, y antes del siguiente, agrego la extension de mi libreria, la cual quedaria extension=php_sqlsrv_53_ts_vc9.dll. Donde he usado el nombre del archivo instalado en el paso 4.
    • Grabo el php.ini y lo cierro
  6. Detengo y reinicio mi servicio Apache

A estas alturas ya cargo la libreria proporcionada por Microsoft y estamos listos para usar todos los comandos de conexion.

Yo usé este script
Código PHP:
$serverName "RUXEE-NOTEBOOK\SQLEXPRESS"

$connectionInfo = array( "Database"=>"ModFinPQP");
$conn sqlsrv_connect$serverName$connectionInfo);

if( 
$conn ) {
     echo 
"Conectado a la Base de Datos.<br />";
}else{
     echo 
"NO se puede conectar a la Base de Datos.<br />";
     die( 
print_rsqlsrv_errors(), true));

Debido a que no indico usuario y password el conector se enlaza a la BD por medio de mi Windows Authentication, sino debera especificarse usuario y password con la misma sintaxis con la que esta $connectionInfo

Me basé en la lectura del manual de PHP.net en [URL="http://www.php.net/manual/en/book.sqlsrv.php"]http://www.php.net/manual/en/book.sqlsrv.php[/URL] donde estan todas las funciones de este buenisimo driver.

Espero les ayude, he tratado de explicarlo sin dejar lagunas.


Muchas gracias ruxee! ahora pude conectarme utilizando sqlsrv!! muy buen post , pero tengo una pregunta, bueno pues yo intento ahora conectarme utilizando mssql_connect(); pero me arroja este error:

Fatal error: Call to undefined function mssql_connect()

¿Por qué crees que me aparesca este error?

Ya puse las dll "php_mssql.dll", "php_msql.dll" y "ntwdblib.dll" y en en el archivo php.ini las llame: "extension=php_mssql.dll", "extension=php_msql.dll" y "extension=ntwdblib.dll".

Utilizo Xampp 1.8.1 y php 5.4.7. ¿Por qué no puede reconocer la función mssql_connect() para conectarme con esta?

Saludos, gracias y espero puedas o puedan darme una idea del por qué no puedo conectarme a SQL Server 2008 con esta función.