Foros del Web » Programando para Internet » PHP »

Error al conectar con Interbase: "Fatal error..."

Estas en el tema de Error al conectar con Interbase: "Fatal error..." en el foro de PHP en Foros del Web. Hola gente, tengo que conectarme a una base de datos interbase con php. El SO que utilizo es windows 2000 El codigo es el sigioente: ...
  #1 (permalink)  
Antiguo 11/08/2004, 05:30
 
Fecha de Ingreso: julio-2004
Mensajes: 19
Antigüedad: 19 años, 8 meses
Puntos: 0
Error al conectar con Interbase: "Fatal error..."

Hola gente, tengo que conectarme a una base de datos interbase con php. El SO que utilizo es windows 2000

El codigo es el sigioente:
<?php
$path = 'c:\BasesDatos\Bd.gdb';
$usuario = 'SYSDBA';
$password = 'masterkey';
$dbhd = ibase_connect ($path, $usuario, $password);
$sql = 'SELECT * FROM TablaDatos'; $consulta = ibase_query
ibase_close ($dbhd);
?>

y me da este error :

Fatal error : Call to undefined function : ibase_connect() in C:\...

Segui las indicaciones de los archivos de instlación, es decir, instalar las extensiones PHP para interbase. Descomente en el PHP.ini la linea en extension=PHP_Interbase.dll, indique donde esta la dll y nada.

Alguien sabe si falta hacer algo mas???, recompilar algo, ?

Muchas Gracias anticipadas.

Saludos.
  #2 (permalink)  
Antiguo 11/08/2004, 07:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y .. verificastes haciendo un phpinfo() si quedó correctamente instalada dicha extensión que habilitastes?

¿Reiniciastes tu servidor HTTP tras el cambio de tu php.ini?

Un saludo,
  #3 (permalink)  
Antiguo 11/08/2004, 08:53
 
Fecha de Ingreso: julio-2004
Mensajes: 19
Antigüedad: 19 años, 8 meses
Puntos: 0
Cita:
Iniciado por Cluster
Y .. verificastes haciendo un phpinfo() si quedó correctamente instalada dicha extensión que habilitastes?

¿Reiniciastes tu servidor HTTP tras el cambio de tu php.ini?

Un saludo,
Antes que nada, gracias por responder, te comento que
Lo primero no lo hice, asi que voy a probar. Supuestamente debería indicar que se instalo correctamente no?

Lo segundo si lo hice y no paso nada.

Agradeceré cualquier otra ayuda.
  #4 (permalink)  
Antiguo 11/08/2004, 08:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Lo primero no lo hice, asi que voy a probar. Supuestamente debería indicar que se instalo correctamente no?
Si, veras una sección nueva (bloque) con datos referentes a Interbase ..

También veras ahí mismo (en el primer bloque de información) donde tienes (en que ruta) el php.ini que está usando PHP; tal vez no editastes el que corresponde y por eso tus cambios no tienen efecto (pese que reinicias tu servidor ...)

Un saludo,
  #5 (permalink)  
Antiguo 11/08/2004, 09:31
 
Fecha de Ingreso: julio-2004
Mensajes: 19
Antigüedad: 19 años, 8 meses
Puntos: 0
Nuevamente, gracias por tu respuesta.

Te comento que en varios foros he visto el mismo problema y en muchos casos menciona que es necesario recompilar PHP para que funcione con Interbase.

Es correcto esto? y en caso afirmativo como lo hago en windows 2000?

Muchas gracias, saludos.
  #6 (permalink)  
Antiguo 11/08/2004, 10:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En general cuando "leemos" sobre "recompilar" PHP para instalar cierta librería (extensión) a PHP .. se refiere a Linux .. En PHP bajo Windows las extensiones ya están pre-compiladas en esos php_xxx.dll que tienese en tu directorio extensions/ o simlar de la instalación de PHP y que supongo que ya habrás apuntado ahí la directiva: extension_dir = "c:\php\extensions" o como se llame la ruta hacia esos php_xxx.dll en ese directorio.

Leyendo el manual oficial de PHP ..
http://www.php.net/ibase

dice:

Cita:
Note to Win32 Users: In order to enable this module on a Windows environment, you must copy gds32.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). In case you installed the InterBase database server on the same machine PHP is running on, you will have this DLL already. Therefore you don't need to copy gds32.dll from the DLL folder.
Ahí habla de otra .dll que debes mover de directorio. (dice que si Interbase está en el mismo PC que corre PHP no hace falta mover dicha .dll).

En general ... te recomiendo mover todas las .dll que veras en tu directorio dll/ a tu directorio de sistema (system ...). Algunas de esas DLL las usan otras extensiones de PHP. (de hecho en la instalación de PHP ese es uno de los pasos a realizar para dejar "andando" PHP).

Un saludo,
  #7 (permalink)  
Antiguo 11/08/2004, 12:42
 
Fecha de Ingreso: julio-2004
Mensajes: 19
Antigüedad: 19 años, 8 meses
Puntos: 0
te comento que ya hice todo lo que mencionas. De hecho, para probar si utiliza el php.ini que yo quiero, modifico el path extension_dir a uno incorrecto y reinicio el servidor http. En ese momento tira el error "Que no encuentra la interbase.dll en el directorio especificado" (esto es correcto ya que en esa ubicacion no existe.)

Vuelvo a setear todo de manera correcta, ejecuto el script con phpinfo() y no muestra nada acerca de interbase (debería figurar en "Additional modules"?).

obviamnete, Despues ejecuto el script de conexion y tira el error "Fatal error..."

Lo que se me llama la atencion es que cuando ejecuto phpinfo, en una de las opciones figura: extension_dir= ./ y no lo que yo asigne manualmente en php.ini.

La verdad no se que puede estar sucediendo... se me acabaron las ideas

Saludos, gracias.
  #8 (permalink)  
Antiguo 11/08/2004, 14:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Y movistes la .dll -> gds32.dll a tu c:\windows\system ?

Que usas "textualmente" en la directiva extension_dir = ???????

Un saludo,
  #9 (permalink)  
Antiguo 11/08/2004, 17:42
 
Fecha de Ingreso: julio-2004
Mensajes: 19
Antigüedad: 19 años, 8 meses
Puntos: 0
Cita:
Iniciado por Cluster
Y movistes la .dll -> gds32.dll a tu c:\windows\system ?

Que usas "textualmente" en la directiva extension_dir = ???????

Un saludo,
la libreria dgs32.dll ya esta en dicha ubicacion porque tengo interbase corriendo en la misma maquina.

En el php.ini tengo lo siguiente:

extension_dir=C:\Php\extensions

Como te mencione anteriormente, cuando modifico este path, por ej: "C:\Php\", al iniciar el servidor http tira un error que no puede encontrar la dll php_interbase.dll, lo cual es correcto ya que al intentar cargarla no existe en dicha ubicacion.
Cuando vuelvo a setear correctamente (extension_dir=C:\Php\extensions) el error de que no existe la dll desaparece, lo que me hace pensar que la encuentra a la dll correctamente.
Pero despues no aparece nada acerca de interbase cuando hago phpinfo().
En uno de los primeros renglones me aparece "extension_dir=./", lo que me llama la atencion ya que en el ini no esta así.

saludos, y muchas gracias por tu tiempo.
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 16:51.