Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2005
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Se Puede Trabajar FireBird con PHP????

Quiero hacer mi primera programa en PHP haciendo una consulta a una tabla de una base de datos, ya instale el Apache 2.054 y el PHP 4 ya realize las configuraciones pertinentes para PHP y el Apache, tengo el siguiente Código que uso para conectarme a la BD y hacer la consulta a una tabla:
Código PHP:
<?php    
$path 
'c:/Ejemplo/datos/MiBD.gdb';    
$usuario 'SYSDBA';    
$password 'masterkey';    
$dbhd ibase_connect ($path$usuario$password);    
$sql 'SELECT * FROM clientes';    
$consulta ibase_query ($dbhd$sql);    
while (
$fila ibase_fetch_object ($consulta)) 
{        
print 
$fila->email "\n";    
}    
ibase_close ($dbhd);?>
Y me lanza en el Internet Explorer los siguientes errores:
Warning: ibase_connect(): unavailable database in C:\Servidor\php\Paginas\QryFireBird1.php on line 5

Warning: ibase_query(): no InterBase link resource supplied in C:\Servidor\php\Paginas\QryFireBird1.php on line 7

Warning: ibase_fetch_object(): supplied argument is not a valid InterBase result resource in C:\Servidor\php\Paginas\QryFireBird1.php on line 8

Warning: ibase_close(): 0 is not a valid InterBase link resource in C:\Servidor\php\Paginas\QryFireBird1.php on line 12

Este ejemplo lo tome de este club....

Que estare haciendo mal????

Agradezco cualquier sugerencia al respecto....

Última edición por AGAG4 fecha: 21-06-2005 a las 02:53:04. Razón: Corrección
Responder Con Cita
  #2  
Antiguo 21-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por AGAG4
Que estare haciendo mal????
Cita:
Empezado por AGAG4
Warning: ibase_connect(): unavailable database in C:\Servidor\php\Paginas\QryFireBird1.php on line 5
Hola.

Sugiero que el servidor de interbase sea arrancado antes de intentar de nuevo acceder a esta página.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 21-06-2005
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
????

Cita:
Empezado por jachguate
Hola.

Sugiero que el servidor de interbase sea arrancado antes de intentar de nuevo acceder a esta página.

Hasta luego.

Juan Antonio si te refieres de que debe de estar abierto el Guardian de FireBird antes de acceder a la consulta por php por medio del internet explorer te informo que si siempre tengo abierto el FireBird, he escarbado un poco en el google y veo la misma instrucción para conectarme a una base de datos de INTERBASE por eso pregunto si se puede conectar a FireBird ya se que este úlimo es hijo de Interbase pero como es la primera vez que intento hacer consultas por medio de PHP ando viendo cual es la causa de los errores que me muestra, ya revise el php.ini que tengo en c:\windows y tengo habilitado el dll del interbase.... Gracias por su respuesta.
Responder Con Cita
  #4  
Antiguo 21-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
El mensaje de error es típico de cuando el servidor no está levantado. Si no es eso, pues francamente no tengo idea por ahora.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 22-06-2005
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
Prueba a indicar el nombre de la computadora, ejemplo:

$path = 'localhost:c:\Ejemplo\datos\MiBD.gdb';

Otra cosa, los nombres de los campos debes indicarlos en mayusculas, porque asi los devuelve el modulo de interbase, sino php no los encontrará (php es case-sensitive en los nombres de las variables como C) ejemplo:

print $fila->EMAIL . "\n";

Si tienes dudas sobre lo que contiene $fila, puedes probar a hacer un:

print_r($fila);

Que te imprimira todo el contenido del registro $fila incluidos nombres de campos y valores , indicando tambien si la variable se trata de un objeto o un array, etc, bastante util para debugear.

Otra cosa, es aconsejable utilizar ibase_pconnect en lugar de ibase_connect, ya que es muchisimo mas rapido mantener la conexion entre peticiones de paginas, que reconectar en cada peticion.

Mas cosas, es aconsejable que indiques el charset en el ibase_connect,
si tus paginas web van en iso normal:

$ibase_charset = 'ISO8859_1';

Si tus paginas van en UTF-8 (formato que cada vez se utiliza mas sobre todo en paginas que deben poder internacionalizarse ya que permite mostrar los caracteres de cualquier idioma):

$ibase_charset= 'UNICODE_FSS';

Usando firebird esta ultima opcion es muy util, ya que aunque la base de datos originalmente este guardada en ISO8859_1 firebird hace la conversion de forma automatica, devoviendo la informacion directamente en UTF-8.

Saludos
Responder Con Cita
  #6  
Antiguo 22-06-2005
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Ahora....

Cita:
Empezado por Mick
Prueba a indicar el nombre de la computadora, ejemplo:

$path = 'localhost:c:\Ejemplo\datos\MiBD.gdb';

Otra cosa, los nombres de los campos debes indicarlos en mayusculas, porque asi los devuelve el modulo de interbase, sino php no los encontrará (php es case-sensitive en los nombres de las variables como C) ejemplo:

print $fila->EMAIL . "\n";

Si tienes dudas sobre lo que contiene $fila, puedes probar a hacer un:

print_r($fila);

Que te imprimira todo el contenido del registro $fila incluidos nombres de campos y valores , indicando tambien si la variable se trata de un objeto o un array, etc, bastante util para debugear.

Otra cosa, es aconsejable utilizar ibase_pconnect en lugar de ibase_connect, ya que es muchisimo mas rapido mantener la conexion entre peticiones de paginas, que reconectar en cada peticion.

Mas cosas, es aconsejable que indiques el charset en el ibase_connect,
si tus paginas web van en iso normal:

$ibase_charset = 'ISO8859_1';

Si tus paginas van en UTF-8 (formato que cada vez se utiliza mas sobre todo en paginas que deben poder internacionalizarse ya que permite mostrar los caracteres de cualquier idioma):

$ibase_charset= 'UNICODE_FSS';

Usando firebird esta ultima opcion es muy util, ya que aunque la base de datos originalmente este guardada en ISO8859_1 firebird hace la conversion de forma automatica, devoviendo la informacion directamente en UTF-8.

Saludos
Ya puse el nombre de la PC antes dela Ruta de la BD (NombrePc:c:\PHP\BD.gdb), cambie ibase_connect por ibase_pconnect, añadí
$ibase_charset= 'UNICODE_FSS'; en la Ruta de la Base de Datos Probe usando las 2 Diagonales (/ \), pero ahora me pone la Página en BLANCO ni siquiera me pone ningún Error, Ahora que estará pasando????

Gracias por sus Respuestas....

Última edición por AGAG4 fecha: 22-06-2005 a las 01:54:04. Razón: Corrección
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:49:46.


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