wamp64 uncaught sqlsrv_connect mssql_pconnect fatal error conectar con php sql-server wamp

php - uncaught - Error fatal: llamada a la función no definida sqlsrv_connect()



fatal error: call to undefined function sqlsrv_connect() in (5)

Cuando instales extensiones de terceros, debes asegurarte de que todos los parámetros de compilación coincidan:

  • Versión de PHP
  • Arquitectura (32/64 bits)
  • Compilador (VC9, VC10, VC11 ...)
  • Hilo de seguridad

Los fallos comunes incluyen:

  • Edite el archivo php.ini incorrecto (típico de los paquetes); el camino correcto es show en phpinfo()
  • Olvidate de reiniciar Apache
  • No ser capaz de ver los errores de inicio; esos deben aparecer en los registros de Apache, pero también puede usar la línea de comando para diagnosticarlo, por ejemplo:

    php -d display_startup_errors=1 -d error_reporting=-1 -d display_errors -c "C:/Path/To/php.ini" -m

Si todo está bien, debería ver sqlsrv en el resultado del comando:

[Módulos de PHP]
bcmath
calendario
Núcleo
[...]
SPL
sqlsrv
estándar
[...]

He encontrado bastantes publicaciones con respecto a la misma pregunta de tema, sin embargo, aún no puedo resolverlo, por lo que pregunto. Estoy tratando de conectarme a sql en mi script php. Mi cadena de conexión es:

/* Specify the server and connection string attributes. */ $serverName = "xxx-PC/SQLExpress"; $connectionOptions = array("Database"=>"Salesforce"); $conn = sqlsrv_connect($serverName, $connectionOptions); if($conn === false) { die(print_r(sqlsrv_errors(), true)); }

He instalado e incluido lo siguiente en mi archivo php.ini ubicado debajo de la carpeta wamp: C:/wamp/bin/php/php5.4.16 :

extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll

Mi wampserver está funcionando bien y también lo están los servicios wampapache y wampsqld . Puedo ejecutar php.exe con éxito. Sin embargo, no puedo establecer la conexión con SQL Server 2008 R2 donde se encuentra mi base de datos. ¡Por favor ayuda!

EDIT 1: El servidor de wamp ejecuta el servicio wampmysql mientras trato de conectarme a SQL Server 2008 R2 . Podría ser ésta la razón? ¿Debo usar MySQL lugar de SQL ? ¿Alguna sugerencia?

EDIT 2: No veo la sección sqlsrv en absoluto cuando ejecuto phpinfo() aunque he agregado extension=php_sqlsrv_54_ts.dll en el archivo php.ini ubicado en la carpeta bin del servidor wamp.


Primero compruebe que la extensión esté cargada correctamente en phpinfo(); (algo como sqlsrv debería aparecer). Si no, la extensión no está cargada correctamente. También debe reiniciar apache después de instalar una extensión.


Si está utilizando Microsoft Drivers 3.1, 3.0 y 2.0 . Verifique que su versión de PHP ya se haya instalado con IIS.

Utilice esta secuencia de comandos para verificar la versión de php:

<?php echo phpinfo(); ?>

O

Si ha instalado PHP Manager en IIS utilizando el instalador de plataforma web, puede verificar la versión desde allí.

Entonces:
Si está utilizando una nueva versión de PHP (5.6), descargue Drivers de aquí

Para la versión de PHP inferior a 5.6, descargue controladores de aquí

  • La versión 3.1 del controlador PHP requiere PHP 5.4.32 o PHP 5.5.16 o posterior.
  • La versión 3.0 de PHP Driver requiere PHP 5.3.0 o posterior. Si es posible, use PHP 5.3.6 o posterior.
  • El controlador PHP versión 2.0 funciona con PHP 5.2.4 o posterior, pero no con PHP 5.4. Si es posible, use PHP 5.2.13 o posterior.

A continuación, utilice PHP Manager para agregar los controladores descargados al archivo de php config . Puede hacerlo como se muestra a continuación (examine los archivos y presione OK). A continuación, reinicie el servidor IIS

Si este método no funciona, cambie la versión de php e intente ejecutar su script php. Para cambiar la php version a menor y tratar de entender lo que sucedió. Luego, puede descargar los controladores relevantes siguiendo mis pasos anteriores.


tengo esto mismo porque en httpd.conf en apache PHPIniDir D:/wamp/bin/php/php5.5.12 que era incorrecto


This me ayudó a llegar a mi respuesta. Hay dos archivos php.ini ubicados, en mi caso, para wamp. Uno está en la carpeta php y el otro en la carpeta C:/wamp/bin/apache/Apachex.xx/bin . Cuando nos sqlsrv_connect a SQL a través de la función sqlsrv_connect , nos referimos al archivo php.ini en la carpeta apache . Agregue lo siguiente (según su versión) a este archivo:

extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll