Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Cocktail EXPLOSIVO : PHP + Firebird + Inexperiencia total (https://www.clubdelphi.com/foros/showthread.php?t=25803)

papulo 04-10-2005 18:16:05

Cocktail EXPLOSIVO : PHP + Firebird + Inexperiencia total
 
Aqui estoy, intentando mostrar una pequeña consulta, generada con php
Código 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:
Cita:

Empezado por EL PUTO EXPLORER DE LOS WEBOS
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

Código:

;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:
Cita:

Empezado por kkEXPLORER SAYS
Consulta SQL
Warning: ibase_pconnect() [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]: 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:
Código PHP:

<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]: 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.

Código PHP:

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)
Código PHP:

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]: 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!


La franja horaria es GMT +2. Ahora son las 15:08:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi