Foros del Web » Programando para Internet » PHP »

Como conectarse a Informix o a SQL Server

Estas en el tema de Como conectarse a Informix o a SQL Server en el foro de PHP en Foros del Web. Saludos colegas, esta es mi contribución con el foro, a fín de ayudar a los principiantes en PHP como yo... Antes de hacer esto recuerden ...
  #1 (permalink)  
Antiguo 20/09/2006, 08:08
Avatar de Mulato  
Fecha de Ingreso: diciembre-2001
Ubicación: Caracas
Mensajes: 158
Antigüedad: 22 años, 4 meses
Puntos: 0
Como conectarse a Informix o a SQL Server

Saludos colegas, esta es mi contribución con el foro, a fín de ayudar a los principiantes en PHP como yo...

Antes de hacer esto recuerden que deben habilitar las extensiones de Informix y SQLServer en el archivo PHP.ini, esta configuración debe estar corriendo sobre Apache, sobre IIS no sabría decirles si funciona porque no la he probado aún...

Conexión para Informix...

$cnn_ifx = ifx_connect('base@servidor','usuario','clave') or die(ifx_error());

*** Advertencia para usuarios de Windows... ***
Los archivos de informix deben estar en c:\informix y no se les ocurra instalar nuevas versiones del informix porque entonces pluf, y lo mas recomendable es restaurar a una sesión anterior, me imagino que debe ser por el Setnet...

Conexión para SQL Server...

$cnn_sql = mssql_connect('host\servidor','usuario','clave');
$db_sql = mssql_select_db ( 'base', $cnn_sql );

Se llama a $cnn_sql en vez de $db_sql, el porque no se, pero confio que un moderador lo explique ...

Suerte...
__________________
Necesito aprender para compartir mi saber...
  #2 (permalink)  
Antiguo 20/09/2006, 09:18
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
Que tal. Por que no colocas tu tema en los FAQ'S sería de gran ayuda a fututo... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #3 (permalink)  
Antiguo 20/09/2006, 09:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Se llama a $cnn_sql en vez de $db_sql, el porque no se, pero confio que un moderador lo explique ...
No confundan las taréas de un "moderador" con el conocimiento que este pueda tener.

Yo por ejemplo (como aludido) no domino "SQL Server" ni "Informix", así que sobre este tema .. mejor no opino pues no tengo conocimientos.

De todas formas no entendi tu acotación al respecto .. Si te refires a que en:
$db_sql = mssql_select_db ( 'base', $cnn_sql );

El 2° parámetro es el "link" de conexión .. sí, eso es así por definición de las funciones de conexión en general de PHP (tanto para Mysql, MS SQL y otras ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 20/09/2006 a las 09:41
  #4 (permalink)  
Antiguo 20/09/2006, 09:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jmqc Ver Mensaje
Que tal. Por que no colocas tu tema en los FAQ'S sería de gran ayuda a fututo... Saludos
Realmente para que quede como FAQ, habría que separar el tema en dos: una para MS SQL Server y otra para Informix.

Lo mejor son los comentarios sobre las experiencias del que lo ha probado, pero .. por ejemplo para el caso de MS SQL Server ya el manual oficial de PHP aclara al respecto que es necesario disponer en el servidor que corra PHP de las librerías o "clientes" de MS SQL Server (una .dll concreta).

El tema como está "asume" que PHP y MS SQL Server o Informix corren en el mismo servidor .. Es importante hacer este tipo de acotaciones por qué no todo el mundo está en la misma situación (y/o sobre el Sistema Operativo que corre el servidor por si hay detalles o consideraciones).

Si pueden completar el tema . .OK, publiquenla como FAQ. Si hay cosas que han resultado "por defecto" por "coincidir" que el servidor que corre PHP y el que corre MS SQL Server es el mismo y por ende ya están instaladas las .dll necesarias .. por favor hacer ese tipo de acotaciones para que la FAQ realmente sea de utilidad.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 21/09/2006, 07:48
Avatar de Mulato  
Fecha de Ingreso: diciembre-2001
Ubicación: Caracas
Mensajes: 158
Antigüedad: 22 años, 4 meses
Puntos: 0
De acuerdo

Cita:
Iniciado por Mulato Ver Mensaje
Conexión para Informix...

$cnn_ifx = ifx_connect('base@servidor','usuario','clave') or die(ifx_error());

*** Advertencia para usuarios de Windows... ***
Los archivos de informix deben estar en c:\informix y no se les ocurra instalar nuevas versiones del informix porque entonces pluf, y lo mas recomendable es restaurar a una sesión anterior, me imagino que debe ser por el Setnet...

Conexión para SQL Server...

$cnn_sql = mssql_connect('host\servidor','usuario','clave');
$db_sql = mssql_select_db ( 'base', $cnn_sql );
No necesariamente tienen que estar en el mismo servidor...

base@servidor = El nombre de cualquier BD @ nombre del servidor de informix
host\servidor = Se describe solo

MSSQL solo necesita la extención activa en el php.ini porque el componente OLEDB así que no necesitas tener instalado nada adicional en el servidor WEB, tanto para Apache como para IIS.

Informix: Si necesita estar instalado en el servidor Web y la extención activa en el php.ini, especificamente en la ruta c:\informix (WINDOWS)
__________________
Necesito aprender para compartir mi saber...
  #6 (permalink)  
Antiguo 21/09/2006, 09:20
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 21 años, 5 meses
Puntos: 2
Hola Mulato.

A ver si te puedo ayudar en algo, yo utilizo MSSQL2000 y no siempre el servidor de la Base de Datos esta en el mismo lugar que el Servidor IIS en mi caso,

Para ello utilizo el siguiente codigo.

Código PHP:
// variables 
$_Base 'NombreDataBase';
$_Server 'NombreServSQL';
$_user '*****';
$_passw '******';

// creo el conector ODBC 
$OdbcConect ='DRIVER={SQL Server};AutoTranslate=No;Network=DBMSSOCN;APP=SW3WebCtrl;DATABASE=';
$OdbcConect1 =';SERVER=';
$_Server $OdbcConect.$_Base.$OdbcConect1.$_Server;

//realizo la coneccion
$conex odbc_connect($_Server$_user$_passw);   

// realizo el Query o el select a la base de datos
$ComandQry="exec xxxx.sp_storeprocedure '$COMPUTERNAME', 'LOGIN'";

$resultado odbc_do($conex$ComandQry);

$recrd1 odbc_result($resultado1) ; 
$recrd2 odbc_result($resultado2) ; 
$recrd3 odbc_result($resultado3) ; 
Bueno espero ke te sea de utilidad, cualquier cosa a tus ordenes...
saludos
  #7 (permalink)  
Antiguo 21/09/2006, 09:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Mulato

MSSQL solo necesita la extención activa en el php.ini porque el componente OLEDB así que no necesitas tener instalado nada adicional en el servidor WEB, tanto para Apache como para IIS.


Según PHP.net si usas las extensioens mssql_xxx() (www.php.net/mssql) dice que necesitas tener instalado la versión "cliente" (hablamos de windows) de MS SQL Server en el servidor que corra PHP .. esto en definitiva es la librería .dll:

Requirements for Win32 platforms.

Cita:
The extension requires the MS SQL Client Tools to be installed on the system where PHP is installed. The Client Tools can be installed from the MS SQL Server CD or by copying ntwdblib.dll from \winnt\system32 on the server to \winnt\system32 on the PHP box. Copying ntwdblib.dll will only provide access. Configuration of the client will require installation of all the tools.
Por cierto .. este comentario en php.net sólo sale en la versión en ingles de la documentación.

http://www.php.net/manual/en/ref.mssql.php

No sé si esa .dll viene con OLEDB y si en windows (que versiones) viene por defecto .. en cualquier casa para completar el tema estaría bueno aclarar ese punto.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 22/09/2006, 07:18
Avatar de Mulato  
Fecha de Ingreso: diciembre-2001
Ubicación: Caracas
Mensajes: 158
Antigüedad: 22 años, 4 meses
Puntos: 0
De acuerdo

Cita:
Iniciado por Cluster Ver Mensaje
Mulato

Según PHP.net si usas las extensioens mssql_xxx() (www.php.net/mssql) dice que necesitas tener instalado la versión "cliente" (hablamos de windows) de MS SQL Server en el servidor que corra PHP .. esto en definitiva es la librería .dll:

Requirements for Win32 platforms.



Por cierto .. este comentario en php.net sólo sale en la versión en ingles de la documentación.

http://www.php.net/manual/en/ref.mssql.php

No sé si esa .dll viene con OLEDB y si en windows (que versiones) viene por defecto .. en cualquier casa para completar el tema estaría bueno aclarar ese punto.

Un saludo,
OK Cluster...

Realize pruebas en el server y desinstale el cliente SQLSERVER y cualquier rastro del mismo, reinicie el PC y funciono la conexión, esto sucede porque el OLEDBC establece un puente entre la solicitud y el servidor donde esta alojado el manejador de BD, por eso no es necesario un interprete intermedio en el servidor WEB, es decir, no necesitas un cliente instalado en el servidor Web, solo para el caso del Windows, en LINUX no he realizado aún la prueba, pero si nadie nos aclara esa duda la hare en el SUSE 10...

En referencia a la clase de conexión de Chuty, no la he revisado porque mis conocimientos son limitados pero intentare ejecutarla a ver como me va, al menos me alegro que se incorpore mas información al tema, porque de verdad, casi todo el soporte es de MySQL, por mi parte me centrare a escribir mis experiencias en Informix y SQLServer...

Ahhh, se me olvidaba, estoy tratando de hacer una consulta que se descargue desde SQLServer e Informix en el mismo reporte, si tienen alguna información al respecto no esta de mas la ayudita...
__________________
Necesito aprender para compartir mi saber...
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 23:20.