php - sqlsrv_connect - sqlsrv_select_db
Error grave de PHP: llamada a la funciĆ³n no definida mssql_connect() (3)
Nunca antes había usado php y estoy tratando de conectarme a una instancia de SQL Server 2008 en una máquina con Windows que ejecuta IIS7 y PHP5.3.
He descargado e instalado SQLSRV30.EXE
desde aquí en C:/Program Files (x86)/PHP/ext
agregué esto a C:/Program Files (x86)/PHP/php.ini
:
extension=php_sqlsrv_53_nts.dll
Luego reinició todo el servidor. Aún recibo errores fatales en mi archivo de registro que dicen:
PHP Fatal error: Call to undefined function mssql_connect()
¿Qué debo hacer para conectarme a Microsoft SQL Server 2008 desde PHP 5.3 que se ejecuta en IIS7 / Windows Server 2008? Estoy seguro de que es algo realmente tonto que me estoy perdiendo ...
FULL PHPINFO -> http://demo.mandibleweb.com/zapified/hello.php
phpinfo ():
PHP Version 5.3.10
System
Windows NT MWD001 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
Build Date
Feb 2 2012 20:10:58
Compiler
MSVC9 (Visual C++ 2008)
Architecture
x86
Configure Command
cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:/php-sdk/oracle/instantclient10/sdk,shared" "--with-oci8=C:/php-sdk/oracle/instantclient10/sdk,shared" "--with-oci8-11g=C:/php-sdk/oracle/instantclient11/sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet" "--with-mcrypt=static" "--disable-static-analyze"
Server API
CGI/FastCGI
Virtual Directory Support
disabled
Configuration File (php.ini) Path
C:/Windows
Loaded Configuration File
C:/Program Files (x86)/PHP/php.ini
Acabo de intentar instalar esa extensión en mi servidor de desarrollo.
Primero, asegúrese de que la extensión esté habilitada correctamente. Su salida phpinfo()
no parece completa.
Si de hecho está instalado correctamente, su phpinfo()
debería tener una sección que se vea así:
Si no obtiene esa sección en su phpinfo()
. Asegúrese de estar utilizando la versión correcta. Hay versiones de la extensión que no son seguras para subprocesos y para subprocesos.
Finalmente, verifica tu configuración de extension_dir
. Por defecto es esto: extension_dir = "ext"
, la mayor parte del tiempo funciona bien, pero si no lo intenta: extension_dir = "C:/PHP/ext"
.
=============================================== ======================
EDITAR dada nueva información:
Estás usando la función incorrecta. mssql_connect()
es parte de la extensión Mssql . Está utilizando la extensión de Microsoft, así que use sqlsrv_connect()
, para la API para el controlador de Microsoft, mire SQLSRV_Help.chm
que debe extraerse a su directorio ext
cuando extraiga la extensión.
php.ini probablemente necesite leer: extension=ext/php_sqlsrv_53_nts.dll
O mueva el archivo al mismo directorio que el ejecutable php. Esto es lo que hice en mi instalación de php5 esta semana para que funcione odbc_pdo. :PAG
Además, eso no se parece a la salida phpinfo () correcta. Si haces un archivo con contenido
<? phpinfo(); ?>
<? phpinfo(); ?>
y visite esa página, la salida HTML debe mostrar varias secciones, incluida una con módulos cargados. (Editado para agregar: como se muestra en la captura de pantalla de la respuesta aceptada anteriormente)
Estoy usando IIS y mysql (directamente descargado, sin wamp o xampp) Mi php fue instalado en c: / php Estaba obteniendo el error de "llamar a la función indefinida mysql_connect ()" Para mí, el cambio de extension_dir funcionó. Esto es lo que hice. En el php.ini, originalmente, tenía esta línea
; En Windows: extension_dir = "ext"
Lo cambié a:
; En Windows: extension_dir = "C: / php / ext"
Y funcionó. Por supuesto, hice las otras cosas, como quitar el comentario de las extensiones dll, etc., como se explica en otros comentarios.