Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Error ODBC al conectar con BBDD MSSQL desde PHP

Estas en el tema de Error ODBC al conectar con BBDD MSSQL desde PHP en el foro de SQL Server en Foros del Web. Bueenas de nuevo.. Ante todo, lo siento si no es su lugar y va en BBDD pero como está hecho en PHP pues.. A ver, ...
  #1 (permalink)  
Antiguo 29/04/2009, 05:34
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años, 1 mes
Puntos: 13
Error ODBC al conectar con BBDD MSSQL desde PHP

Bueenas de nuevo.. Ante todo, lo siento si no es su lugar y va en BBDD pero como está hecho en PHP pues..

A ver, tengo un XP con el Apache con PHP bien configurado para acceder a bases de datos MSSQL y MySQL. Tengo una aplicación que hice en mi ordenador pero por razones obvias queremos mudarlo a este XP que hará de servidor web.

Lo curioso es que en mi ordenador se conecta bien a la BBDD MSSQL, copio y pego exactamente la misma aplicación al nuevo servidor, pero la conexión con la BBDD da el siguiente error:

Cita:
Error message: [Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado
He buscado por el señor Guguel y he probado algunas cosas que decían que podía ser y nada.. Me he instalado el Access porque un tío decía que necesitabas el Access para tener la librería ODBC y tal pero nada.. es más, me he instalado el Office entero xD

También dicen que eso es porque no tengo creado el usuario en el Panel de Control / Herramientas administrativas / noseque de ODBC del servidor de MSSQL, pero he ido a mirar y no hay ningún usuario ahí.. así que si en mi máquina funciona sin usuario, en la nueva también debería ir no?

Después he copiado el mismo fichero httpd.conf y php.ini de mi máquina hacia la nueva, he reiniciado el servicio Apache, y sigue saliendo el mismo error aun teniendo la misma configuración.

Finalmente, como estamos todos los usuarios en un dominio, he introducido mi usuario en la máquina servidor y lo he ejecutado como localhost (yo que sé.. por si se intentaba loguear con el servidor MSSQL por el usuario de Windows) y tampoco ha funcionado.

Alguien sabe como arreglarlo? :(

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 29/04/2009, 08:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Error ODBC al conectar con BBDD MSSQL desde PHP

El error te dicce que no haz configurado el DataSource en tu panel de control, tienes que crear el nombre de datos para poder conectarte a el desde php.

Tema trasladado desde PHP
  #3 (permalink)  
Antiguo 04/05/2009, 02:45
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años, 1 mes
Puntos: 13
Respuesta: Error ODBC al conectar con BBDD MSSQL desde PHP

Hola GatorV, gracias de nuevo por contestar

Lo que no entiendo es porque me da error en esa máquina pero no en la mía. He comparado las configuraciones y están igual, sólo cambia esto:

Izquierda: Mi equipo
Derecha: Equipo nuevo




:S

De todas formas, también intenté crear un nuevo origen de datos "SQL Server", en DSN de usuario, conectando con el servidor correctamente (como se muestra en la captura de abajo), pero aun así, sigue dándome el mismo error...



Alguien sabe configurarlo bien? :(

Merciiii!
  #4 (permalink)  
Antiguo 04/05/2009, 04:29
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: Error ODBC al conectar con BBDD MSSQL desde PHP

Hola, no estaría demás que pusieras el código de conexión de tu aplicación. Siempre recomiendo poner: "TCP:Servidor,puerto"

Me suena a que necesitas las MDACS en tu XP, las puedes descargar de Microsoft.

Prueba y nos cuentas.

Saludos
  #5 (permalink)  
Antiguo 05/05/2009, 00:57
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años, 1 mes
Puntos: 13
Respuesta: Error ODBC al conectar con BBDD MSSQL desde PHP

Hola ejbsoft, gracias también por contestar.

Creo que ya las tengo porque me da el siguiente error al instalarlas:

Cita:
MDAC 2.8 RTM no es compatible con esta versión de Windows. Todas sus características ya forman parte de Windows.
Por otra parte sigo intentando conectarlo y no hay manera.. debo configurarlo también en el ODBC del servidor? (tal y como lo he entendido, eso es para que un cliente se conecte a un servidor así que del servidor no tengo que tocar nada no?)

También es un buen momento para decir que está montado en un XP en una máquina virtual VMWare... que creo que no debería influir pero por si acaso lo comento.

Las capturas de arriba que dicen lo de "PRUEBAS COMPLETADAS CORRECTAMENTE", están configuradas con el usuario sa, que no sé si eso también puede generar errores...

Esto es imposible :(

Gracias!
  #6 (permalink)  
Antiguo 05/05/2009, 02:54
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: Error ODBC al conectar con BBDD MSSQL desde PHP

Hola, si llegas con un ODBC, según las pruebas, lo más seguro es que sea de la aplicación. Revisa el código de conexión.
Lo del SA no tiene nada que ver.
Saludos
  #7 (permalink)  
Antiguo 05/05/2009, 05:48
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años, 1 mes
Puntos: 13
Respuesta: Error ODBC al conectar con BBDD MSSQL desde PHP

Buenas de nuevo

El código está bien seguro, porque como ya dije desde mi máquina se conecta bien, ha sido ahora al mover la aplicación hacia otra máquina (por lo tanto he copiado y pegado el directorio de la aplicación, es coma por coma el mismo código)

Aunque ya te digo que del código no será, por si acaso, la conexión es esta:

Código PHP:
$bbb=array("UID"=>"sa","PWD"=>"*****");
$linkSQL=sqlsrv_connect($dbhost,$bbb);
if (
$linkSQL === false)
    foreach(
sqlsrv_errors(SQLSRV_ERR_ERRORS) as $error)
        echo(
'<br>Error message: '.$error['message']."\n");
if(!
$linkSQL){
    die(
sqlsrv_errors());

Gracias de nuevo
Saludos
  #8 (permalink)  
Antiguo 11/05/2009, 02:03
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años, 1 mes
Puntos: 13
Respuesta: Error ODBC al conectar con BBDD MSSQL desde PHP

Hola

Sigo peleándome con lo mismo y la cosa va igual.. resumiré todo lo que he intentado hasta ahora a ver si a alguien se le ocurre algo nuevo. Recapitulemos:

1. Quiero mudar una aplicación PHP+MSSQL de un XP (físico), al que llamaremos "XPviejo", a otro XP (virtual), al que llamaremos "XPnuevo".
2. Tengo la DLL y he configurado el php.ini para usar su librería correspondiente.
3. Las funciones de MSSQL las interpreta y compila correctamente.
4. Al realizar la conexión, con exáctamente el mismo código que el XPviejo donde sí funciona, el servidor de MSSQL me lanza el error: "[Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado".
5. He revisado la configuración del Panel de Control / Herramientas Administrativas / Orígenes de Datos (ODBC) del XPviejo y sólo tiene 2 cosas configuradas. Los DSN de archivo (que se pueden copiar dichos archivos a otros ordenadores y así tener la misma config) y los DSN de usuario.
5.1. Copiando los ficheros del DSN de archivo al XPnuevo no ha funcionado. De hecho da error a media configuración del DSN, tanto en el XPviejo como en el XPnuevo
5.2. Configurando manualmente los mismos DSN de usuario que hay en el XPviejo tampoco funciona.
5.3. Creando manualmente un DSN de usuario tipo SQL Server desde cero, configurándolo como "sa" de SQL o bien como usuario autenticado en Windows, y a pesar de pasar las pruebas de conectividad correctamente, sigue sin funcionar.
6. He instalado el Microsoft Office porque por ahí se decía que así instalaba componentes de ODBC. Nada.
7. He instalado las MDACs y tampoco.
8. He instalado SQL Server 2005 Express porque era de las pocas diferencias que hay en el XPviejo del XPnuevo, pero sigue sin ir.

A alguien se le ocurre algo más que probar? Por tonto que sea, da igual, lo probaré.. Llevo mucho tiempo que debería haberlo mudado de servidor y ahora que lo hago me encuentro con esto.. Lo peor va a ser el día que rebiente mi máquina

Saludos y gracias

PD: Evidentemente después de cada cambio reinicio el servicio Apache, e incluso reinicio la máquina entera
  #9 (permalink)  
Antiguo 11/05/2009, 07:32
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: Error ODBC al conectar con BBDD MSSQL desde PHP

Hola.
Puede ser por algo que falte en PHP...

De todas maneras en el código la $dbhost = tcp:server,port ?

link

php.net/manual/en/ref.mssql.php
  #10 (permalink)  
Antiguo 13/05/2009, 04:33
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años, 1 mes
Puntos: 13
Respuesta: Error ODBC al conectar con BBDD MSSQL desde PHP

Buenas, gracias por contestar

He probado lo que decías de poner el puerto con coma y tal, pero tampoco arreglaba el problema. El manual que me decías ya me lo había mirado y remirado y vuelto a mirar antes, durante, y después de crear este hilo jejej Pero bueno, me ha servido porque no había leído todos los comentarios.. y leyendo alguno, por fin funciona, estaba asqueadísimo ya del tema!

Lo único que he hecho ha sido actualizar la DLL ntwdblib.dll y ponerla junto con las otras del php (en C:\Php-X.X.X-Win32\ y en C:\Windows\system32\)... No recordaba que cuando configuré mi ordenador hace tiempo también lo tuve que hacer.

También tuve que instalarme un driver para PHP, éste. No os sabría decir cuál de las 2 cosas ha sido la culminante para que funcione.. tal vez fueron las 2

Sin más, muchas gracias a todos por contestar y ayudarme!

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:01.