PHP odbc_connect sobre Windows 2003 en 64bits

Ayer me cruce con un problema super interesante, me consultaron por un desarrollo que estaban realizando bajo windows, con PHP, IIS, SQLServer y para realizar la conneción utilizaban las librerías nativas de PHP para odbc (odbc_*).

postgres-odbcImagen del ODBC connection manager

El problema era que cuando estaban en entorno de desarrollo funcionaba todo fantástico, cuando pasaban a producción la conección odbc no funcionaba, la cuestión concreta,  no podía encontrar el DSN. Después de chequear varias veces en el odbc connection manager de windows, el DSN estaba registrado y funcionaba perfecto.

Dimos varias vueltas hasta encontrar el problema, dado que en desarrollo utilizaban windows para 32bits y en producción utilizaban windows para 64bits, en las versiones de 64bits windows posee dos versiones del odbc connection manager las cuales no comparten los mismos datos.  Como el interprete de PHP era para 32 bits utilizaba los datos registrados mediante el odbc connection manager de 32bits, por el panel de control solo se puede acceder a la versión de 64bits, por ende nuestras configuraciones solo funcionaban para 64bits.

Solución, bueno, muy sencilla, abrir el odbc connection manager para 32bits (C:\Windows\SysWOW64\odbcad32.exe), [OJO!, el de 64 también dice 32 pero esta en otro directorio, tienen que abrir este] y configurar la conexiones nuevamente. Después de eso funcionara todo perfecto.

Nuevamente, lo único que puedo decir, gracias M$ por los servicios ofrecidos 😛

Share

Leave a Reply

Your email address will not be published. Required fields are marked *