PDA

Ver la Versión Completa : Cocktail EXPLOSIVO : PHP + Firebird + Inexperiencia total


papulo
04-10-2005, 18:16:05
Aqui estoy, intentando mostrar una pequeña consulta, generada con php

<HTML>
<HEAD>
<TITLE>pruebadb.php</TITLE>
</HEAD>
<body>
<h1><div align="center">Consulta SQL</div1></1>
<br>
<br>
<?
$host = 'localhost:/Pablo/DB/ELECSYSDB.FDB';
$username = 'sysdba';
$password = '*****';
$dbh = ibase_pconnect ($host, $username, $password , $base_charset= 'UNICODE_FSS');
$sql='SELECT * FROM SUPPLIERS';
$consulta = ibase_query($dbh, $sql);
while ($fila = ibase_fetch_object ($consulta))
{
echo $fila->ID_SUP . " " . $fila->SUPPLIER_NAME . "<br>";
}
ibase_close ($dbhd);?>
</body>


Lo de descomentar el driver y copiar los dos ya esta hecho.
Para ser sinceros, me da este error:

Fatal error: Call to undefined function ibase_pconnect() in C:\Archivos de programa\PHP Designer 2005\Proyectos\Pruebas\_debug_tmp.php on line 13
¿Que estoy llamando a una funcion no definida? ¿¡¿¡¿¡Pero que se fuma el cacharro este!?!?!

En fin, apache 2, php 5, winxp y un mosqueo de cuidado.

Si hay que aclarar algo mas, responded que me dare toda la prisa posiblebleble.

roman
04-10-2005, 18:37:26
Asegúrate de dos cosas:

1. Que la biblioteca gds32.dll esté en tu carpeta Windows/System32
2. Que tengas habilitada la extensión para interbase en php.ini

Busca la sección Windows Extensions en php.ini que contiene líneas como


;extension=php_hyperwave.dll
;extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll


Asegúrate de quitar el ;

¡Ah! Y luego de estos cambios debes reiniciar Apache

// Saludos

papulo
04-10-2005, 18:48:45
Activado php_interbase.dll (o mas correctamente, descomentado) y la otra dll esta copiada en system32, procedo a reiniciar... APACHE

papulo
04-10-2005, 18:53:30
Las cosas han cambiado, ahora me sale:

Consulta SQL
Warning: ibase_pconnect() [function.ibase-pconnect (http://localhost/pruebas/function.ibase-pconnect)]: I/O error for file "/Pablo/DB/ELECSYSDB.FDB" Error while trying to open file El sistema no puede hallar la ruta especificada. in c:\wamp\www\pruebas\holamundo.php13

Warning: ibase_query() [function.ibase-query (http://localhost/pruebas/function.ibase-query)]: invalid database handle (no active connection) in c:\wamp\www\pruebas\holamundo.php15

Warning: ibase_fetch_object(): supplied argument is not a valid Firebird/InterBase result resource in c:\wamp\www\pruebas\holamundo.php16

Warning: ibase_close(): 0 is not a valid Firebird/InterBase link resource in c:\wamp\www\pruebas\holamundo.php20 on line on line on line on line


En fin, como siempre, para algo sencillo, se me complican las cosas cosa mala, ¡¡cachis!!
Menos mal que siempre estais por aqui dispuestos a ayudarme :p

A ver que pasa ahora...

jlcasih
04-10-2005, 19:03:26
Hola, fijate que le estes pasando bien el path de conexion..y que tengas permiso a la .fdb

papulo
05-10-2005, 09:08:31
Ya se que he tardado en responder...

Veamos, por una parte, si que tengo pleno acceso a la BD, puesto que esta en mi PC, tengo permisos de administrador (de hecho, soy el administrador XD) y el path, si la maquina esta en "Dev1" "d:/papulo/DB/ELECSYSDB.FDB", seria "Dev1:d:/Papulo/BD/ELECSYSDB.FDB" ¿no?

El codigo es este:
<HTML>
<HEAD>
<TITLE>pruebadb.php</TITLE>
</HEAD>
<body>
<h1><div align="center">Consulta SQL</div1></1>
<br>
<br>
<?
$host = 'Dev1:d:/Pablo/DB/ELECSYSDB.FDB';
$username = 'sysdba';
$password = '*****';
$dbh = ibase_pconnect ($host, $username, $password , $base_charset= 'UNICODE_FSS');
$sql='SELECT * FROM SUPPLIERS';
$consulta = ibase_query($dbh, $sql);
while ($fila = ibase_fetch_object ($consulta))
{
echo $fila->ID_SUP . " " . $fila->SUPPLIER_NAME . "<br>";
}
ibase_close ($dbh);
?>
</body>


Aunque donde los "*****" esta escrita la contraseña :D

papulo
05-10-2005, 09:15:50
Me autorespondo...

Ya me va, lo que pasa, es que tenia escrito "localhost" en vez del nombre de mi maquina "Dev1".
Otra cosilla que he hecho, ha sido copiarlo al directorio "WAMP/www/..." de la carpeta de WAMP, que es el instalador de APACHE+mySQL+PHP y he accedido a ejecutarlo a traves del navegador, poniendo en la barra de direcciones "localhost" y una vez ahi, todo lo copiado dentro de la carpeta "/www/..." te sale como proyectos y lo puedes seleccionar y ejecutar a traves del servidor local.

Lo se, me explico como el culo, pero si alguien tiene dudas, pues que lo diga.

Gracias a todos por la ayuda.

tyrula
01-02-2007, 14:49:12
Hola papulo, estoy teniendo el mismo problema que tenias tu.... como lo resolviste???

el error que me sale es este:

Warning: ibase_connect() [function.ibase-connect (http://www.clubdelphi.com/foros/function.ibase-connect)]: unavailable database in C:\xampp\htdocs\miphp\inmobiliaria\librerias\lib.php on line 8

Warning: ibase_query(): no Firebird/InterBase link resource supplied in C:\xampp\htdocs\miphp\inmobiliaria\listado.php on line 27


Y la conexion la tengo así, aunque lo he probado de un monton de formas más:

ibase_connect("C:/xampp/htdocs/miphp/inmobiliaria/INTERNET_PR.FDB","SYSDBA","masterkey");


Gracias!!!!!!!!!!!

papulo
02-02-2007, 11:35:53
Holas joven padawan tyrula.

ibase_connect("C:/xampp/htdocs/miphp/inmobiliaria/INTERNET_PR.FDB","SYSDBA","masterkey");

Creo que te falta añadir la IP de la máquina donde está la DB, aunque sea la tuya.

Algo así como: (Me invento la IP)
ibase_connect('192.168.1.69:C:/xampp/htdocs/miphp/inmobiliaria/INTERNET_PR.FDB','SYSDBA','masterkey');

Fíjate en dos detalles, he usado las comillas simples (a la derecha de la tecla "0") y he puesto la IP en la ruta a la DB.

Saludooos.

tyrula
02-02-2007, 11:48:10
Buenos días Papulo, esto que me dices ya lo había probado y no me funcionaba tampoco, aunque ahora lo he probado con las comillas simples y............. sigue sin funcionar. El error que me sale es el siguiente:

Warning: ibase_connect() [function.ibase-connect (http://localhost/miphp/inmobiliaria/function.ibase-connect)]: Unable to complete network request to host "192.168.1.2". Failed to locate host machine. Undefined service gds_db/tcp. in C:\xampp\htdocs\miphp\inmobiliaria\librerias\lib.php on line 9

Warning: ibase_query(): no Firebird/InterBase link resource supplied in C:\xampp\htdocs\miphp\inmobiliaria\listado.php on line 27

He probado a ponerle localhost en vez de mi IP pero me sale el mismo error :confused::confused:

papulo
02-02-2007, 11:51:30
Ve al google y busca sobre esto "Undefined service gds_db/tcp."

Que si te fijas el error ha cambiado. Puede que sea algún parámentro de configuración o alguna cosa similar.

PD: Las cosas con tesón, salen poco a poco pero salen.

tyrula
02-02-2007, 11:57:50
ok muchas gracias joven Jedi

papulo
02-02-2007, 14:11:25
¿Has encontrado algo al respecto?

tyrula
02-02-2007, 14:21:29
He visto que este error puede ser debido a dos cosas:

1: que se tenga que añadir la línea gds_db 3050/tcp al archivo service
2: por tener instalado el messenger 7.5 que te cambia unas claves del registro.

Me he añadido la línea y nada. He ido al registro y he visto que no me ha cambiado las entradas, pero de todas formas tengo que probar a desinstalar el messenger para ver si va bien. A ver si te puedo confirmar algo el lunes.

Salu2!