Foros del Web » Programando para Internet » PHP »

Duda sobre PHP-GTK2 y PostgreSQL

Estas en el tema de Duda sobre PHP-GTK2 y PostgreSQL en el foro de PHP en Foros del Web. Hola a tod@s, Tengo la necesidad de desarrollar una aplicación en PHP-GTK2 contra Postgres. No conocía esta tecnología y la verdad es que puede serme ...
  #1 (permalink)  
Antiguo 12/08/2011, 06:24
 
Fecha de Ingreso: febrero-2008
Mensajes: 31
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Duda sobre PHP-GTK2 y PostgreSQL

Hola a tod@s,

Tengo la necesidad de desarrollar una aplicación en PHP-GTK2 contra Postgres.
No conocía esta tecnología y la verdad es que puede serme muy útil siempre y cuando pueda trabajar con postgres. He buscado información sobre como conectar aplicaciones php-gtk con base de datos y únicamente he encontrado sobre mysql y yo tengo la imposición de trabajar con PostgreSQL.

Y después de la párrafada, cuento el error esperándo que alguien pueda ayudarme.

Tengo que hacer una aplicación que comprueba en una BD si se ha insertado un registro nuevo. Si es así, debe lanzar un popup informando al usuario.

El tema del popoup lo tengo solucionado. El problema me ha surgido cuando he intentado conectar con la BD. El error que aparece es el siguiente:

"Fatal error: Call to undefined function pg_connect() in c:\pgp-gtk2\prueba.php on line 11"

La línea de código de el error es efectivamente la que conecta con la BD:
$conexion = pg_connect($CadenaConexion);

Parece que no encuentra las librerias de postgres, pero como os he dicho no he encontrado documentación por ningún lado. ¿Alguien sabe como puedo solucionarlo?

Por aportar más información:
- Trabajo sobre Windows
- Lanzo la aplicación desde la línea de comandos

Gracias anticipadas
  #2 (permalink)  
Antiguo 12/08/2011, 08:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

Necesitas en tu php.ini descomentar la línea de [extensions] que dice extension=php_pgsql.dll y necesitas tener instalado en tu maquina los binarios de PostgreSQL para que puedan cargar correctamente las librerías.

Saludos.
  #3 (permalink)  
Antiguo 12/08/2011, 14:55
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

kraiten:
He utilizado PHPGTK bajo windows solamente.
La version mas reciente de PHPGTK es ->
php-gtk-2.0.1. y sus extensiones php-gtk-2.0.1 extensions
Es recomendable instalar las extensiones para tener
mas cobertura de las aplicaciones que se desarrrollen.
Te puedo comentar lo siguiente:
Utiliso archivos BAT para los archivos .php en phpgtk.
Y hago asi:
start /b c:\phpgtk\php-win.exe c:\phpgtk\franco\archivo.php
1.- con start /b y con la utilizacion de php-win.exe me
garantizo que la ventana negra de cmd de windows NO
aparezca y la aplicacion aparece mas profesional.
2.- En el archivo c:\phpgtk\ext\ deben estar todas las
extensiones php_grk_scintilla2.dll etc etc y las de php
como php_pgsql.dll etc etc.
3.- El php ini que debes utilizar esta en c:\phpgtk\ y se llama
php-cli.ini. Claramente se observa donde se colocan
ambas extensiones.
Finalmente, y lo mas importante es que PKPGTK 2.0.1 fue
construido utilizando php 5.2.5 y solo las extensiones php de
esa verson funcionan sin problemas con phpgtk.
Si corres un archivo BAT con phpinfo(); desde la linea de comandos
de phpgtk segun te explique arriba y lo envias a un
archivo de texto, veras todos los detalles de php utilizado con la construccion
de phpgtk.
c:\phpgtk\php-win.exe c:\phpgtk\franco\phpinfodentro.php > archivotexto.txt
OJO: parece que la extension php_gtk_html2.dll NO funciona y
esperamos que funcionara en el futuro ya que creo que la version
de phpgtk data del año 2008. La extension html es de muchisima
utilida ya que nos permite crear sencillos navegadores(tipo el explorer).
Extensiones como imap-dll, etc, etc, etc , etc, etc, etc
funcona bien y aun personalmente le agregue los datos
necesarios para enviar correos con mi servidor de correo al
php-cli.ini y tengo una pequeña aplicacion en phpgtk
que efectivamente me envia correos correcta y fluidamente.
Asimismo, para analisar respuesta de las aplicaciones debes siempre utilizar
echo"........"; que no saldra en la aplicacion pero lo podras enviar los
resultados a un archivo de texto a ver si la aplicacion esta generando
resultados esperados.

Saludos
Y espero te ayude
Franco
  #4 (permalink)  
Antiguo 16/08/2011, 01:32
 
Fecha de Ingreso: febrero-2008
Mensajes: 31
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

Gracias por vuestros comentarios, pero sigo encontrando problemas.

La versión de php-gtk que me he bajado es la 2.0.1 y me la he bajado de "http://gtk.php.net/download.php". La cosa está en que esta versión no incluye la DLL (php_pgsql.dll), es más, ni siquiera me aparece la línea comentada en el "php-cli.ini". Así que la he buscado y me la he descargado. La he incluido en el directorio "php-gtk2/ext/" y en el fichero "php-cli.ini" de la siguiente forma:

...
extension = php_gtk2.dll
extension = php_pgsql.dll
...

Tras lanzar mi aplicación PHP desde la línea de comandos, me ha aparecido un nuevo error: "Error al iniciar la aplicación porque no se encontró php4ts.dll. La reinstalación de la aplicación puede solucionar el problema".

He vuelto a hacer el mismo proceso. La he descargado, la he incluido en el directorio de extensiones y la he incluido en el php-cli.ini de la siguiente forma:
...
extension = php_gtk2.dll
extension = php_pgsql.dll
extension = php4ts.dll
...

pero no ha funcionado y me sigue diciendo que no encuentra php4ts.dll

He probado en incluir el paquete extensions de la 2.0.1 pero entonces dice que no encuentra muchas DLL, aunque las incluya en el php-cli.ini.

¿Sabéis que puede estar pasando?

Por cierto franco190453, lo que comentas sobre el uso de BATs me parece muy correcto y útil. Si consigo que la aplicación se conecte a postgres, sin dura seguiré tu consejo.
  #5 (permalink)  
Antiguo 16/08/2011, 07:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

php4ts.dll no es una extensión, es un DLL que usa PHP para trabajar, este debe de estar en el path donde este php.exe.

Saludos.
  #6 (permalink)  
Antiguo 16/08/2011, 11:16
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

Kraiten:
Acabo de hacer las pruebas con mi phpgtk, que dicho sea de paso
es el mismo tuyo y funciono bajo windows XP SP3 y bajo Windows
7 Prof. Y he utilizado la extension php_pgspl.dll QUE VIENE CON
PHP-5.2.5-NTS-WIN32.zip que se encuentra en el museo del
sitio php Y NO ME DA NINGUN ERROR.
Recuerda que PHPGTK-2.0.1 fue compilado utilizando PHP-5.2.5 Y
las extensiones de esa version funcionan con PHPGTK-2.0.1.
OJO: Nunca he utilizado la base de datos que tu especificas ya que
siempre he utilizado MySql y con esta ultima si me funcinona
correctamente.
No omito agregar que los comantarios de GatorV debes tomarlos en
consideracion; asimismo, me ha hecho pensar el error que ha generado
tu aplicacion,
Cita:
Tras lanzar mi aplicación PHP desde la línea de comandos, me ha aparecido un nuevo error: "Error al iniciar la aplicación porque no se encontró php4ts.dll. La reinstalación de la aplicación puede solucionar el problema".
como que estas corriendo la aplicacion con el php.exe de tu instalacion
php normal; supongo que tienes php instalado en tu ordenador y creo
debe ser una version diferente de PHP-5.2.5? .
Ojo FINAL: Debes correr la aplicacion PHPGTK
con el php-win.exe de la instalacion que trae PHPGTK-2.0.1. Debes
tener mucho cuidado con eso. Es recomendable que la aplicacion la corras
con un archivo bat asi :
start /b c:\PHPGTK\php-win.exe c:\PHPGTK\demos\TuAplicacionphpgtk.php > xxx.tx;
xxx.txt es para que puedas rastrear los errores; asimismo, te recomiendo
que pongas al inicio del archivo php un error reporting E-ALL; para debug.

Buena Suerte
Y Saludos
Franco

P.S. Es necesario que actives las extensiones php_gd2.dll y php_gettext.dll
son muy utiles.
P.S. Es tambien necesario que bajes el PHPGTK-2.0.1-extensiones, que copies
todo ese archivo hacia el c:\PHPGTK\ y que actives las extensiones exclusivas
de phpgtk como php_gtk_extra2.dll, etc etc. Seran de mucha utilidad; he
encontrado que la extension php_gtk_html2.dll da problemas en este momento.

Última edición por franco190453; 16/08/2011 a las 11:23
  #7 (permalink)  
Antiguo 17/08/2011, 01:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 31
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

He estado probando todo lo que me habéis comentado.

En primer lugar decir que en mi Pc tengo instalado un WAMP y la versión de PHP es la 5.2.10. Quiero pensar que siendo una versión superior y teninedo en cuenta que son las librerías de PostgreSQL, tan utilizadas, no debería presentar incompatibilidad ¿no?

En cuanto al problema ocn php4ts.dll me he dado cuenta que era porque la librería php_pgsl.dll que me había descargado era antigua y funcionaba con php4. Entonces he cogido la que tengo en el WAMP y me ha pedido php5ts.dll. A partir de ahí, cada vez que he lanzado la aplicación me iba indicando las DLL que no encontraba hasta que he llegado a un punto en que no me pide ninguna.

También decir que ejecuto mi aplicación con php-win.exe y desde un bat, tal y como cometabas, Franco190453. De la siguiente forma:

start /b c:\php-gtk2\php-win.exe c:\php-gtk2\ejemplos\mensajes2.php > debug.txt;

Llegado a este punto y tras ejecutar el bat, no aparece ningún error por pantalla pero en el debug.txt se registra el error inicial:

Fatal error: Call to undefined function pg_connect() in C:\php-gtk2\ejemplos\mensajes2.php on line 13

O sea que, básicamente, estoy como al principio...
No se que más puedo probar...

Por cierto, he descargado el paquete de extensiones y las he activado:

php-gtk.extensions = php_gtk_libglade2.dll,php_gtk_sourceview2.dll,php_ gtk_extra2.dll,php_gtk_scintilla2.php

Perdonad por mi insistencia, pero es que necesito que esto funcione...
  #8 (permalink)  
Antiguo 17/08/2011, 10:57
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

Kraiten:
Como te comente, solo php-5.2.5 funciona con phpgtk-2.0.1
Aqui te pongo este enlace para que bajes el php->
http://museum.php.net/php5/
En cuanto al comentario que te hace GatorV
de haber instalado las librerias adecuadas para
esa base de datos; pues parece que asi debe ser.
Recuerda que la que tienes en el WAMNP es php-5.2.10.
Saludos
Y espero te funcione.
Saludos
Franco
P.S. Finalmente NO entiendo referente base de datos
postgreSQL pero si manejo bien MySQL y si tengo
una aplicacion miniatura que me ha demostrado
que funciona con phpgtk-2.0.1 y php-5.2.5.
  #9 (permalink)  
Antiguo 19/08/2011, 01:02
 
Fecha de Ingreso: febrero-2008
Mensajes: 31
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

Bueno, no ha funcionado.

No me permiten dedicar más tiempo a investigar sobre este tema así que me temo que tengo que descartar esta tecnologia.

Espero php-gtk siga creciendo, que más adelante se amplíe la documentación y que sobretodo las futuras versiones de php-gtk ya vengan preparadas para Postgres, con todos los componentes necesarios. Entonces seguramente pueda retomar el proyecto.

Muchas gracias por vuestro tiempo y vuestra ayuda.

Saludos
  #10 (permalink)  
Antiguo 20/08/2011, 12:47
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

Kraiten:
A manea de conclusion productiva te incluyo este enlace
http://www.php.net/manual/en/pgsql.setup.php
del manual de php, que sugiere que tu problema no
tiene nada que ver con phpgtk, sino mas bien con
lo que el enlace muestra y en especial lo referente a los
comentarios de los usuarios del manual.
Pero repito que SI funciona con base de datos como
MySql.
Saludos
Franco
  #11 (permalink)  
Antiguo 21/08/2011, 11:16
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

Conclusion:

Kraiten:
No pude resistir el reto de lograr que phpgtk funcione con postgres,
maxime cuando se sabe que MySql ya ha pasado a manos privadas y que
los desarrolladores de php estan seriamente considerando la eliminacion
del soporte que php tiene para con la base de datos MySql.
Personalmente, me interesa por cuanto creo que postgres esta en las
mismas condiciones que MySql estaba hace un año atras.
1.- Instale Postgres para windows postgresql-9-0.4-1-windows de 47.1MB.
ya que es un archivo .exe seleccione el puerto por defecto que es
el 5432. Modifique las variables de entorno ;c:\postgres\bin.
2.- En mi equipo tengo instalado Apache-2.2.19-win32-x86-openssl-0.9.8r,
con php-5.2.6-Win32 y MySql-5.5.13-win32 etc etc.todos funcionan muy
bien y de acuerdo a lo esperado.
3.-Tambien tengo php-gtk-2.0.1-win32.nts y sus extensiones que estan en
php-gtk-2.0.1-win32-extensions. La unica extension Php-Gtk que no funciona
es la php_gtk_html2.dll; se espera para muy pronto se repare ese bug.
3.- Todas las librerias que estan en mi:
c:\postgres\bin, que son (9) libpq.dll, etc, etc las copie al archivo
de windows c:\WINDOWS\system32
4.- Una vez iniciado el servidor de base de datos de postgres y
utilizando una pequeña aplicacion de phpgtk que tengo bajo mi
sistema de->
Archivo bat:
start /b c:\phpgtk\php-win.exe c:\phpgtk\demos\franco\prueba.php > info.txt
Cuando lo corri, con el siguiente codigo, tomado de Docs. php ->
<?php
$pgsql_conn = pg_connect("host=localhost dbname=franco user=postgres password=xxxxxxxxx")
or die('Could not connect: ' . pg_last_error());

if ($pgsql_conn) {
print "Successfully connected to port: " . pg_port($pgsql_conn) . "<br/>\n";
} else {
print pg_last_error($pgsql_conn);
exit;
}
?>
Me dio el siguiente resultado ->
Successfully connected to port: 5432<br/>

OJO!: todas las extensioes de php las saque
del php-5.2.5-win32 y muy especialmente
la php_pgsql.dll .....

Saludos
Y espero nos sirva a todos.
Franco

P.S. Se utilizo el php-cli.ini de PhpGtk
[PHP]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; About the php.ini in PHP-GTK ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; This file introduces the php.ini settings that you will need in order to
; run PHP-GTK on your system. You may also need other settings from PHP's
; standard php.ini file, e.g. to load further extensions or otherwise control
; PHP's behaviour in matters such as error reporting. Please add those in
; the upper part of this file, in the PHP section.

; You should use PHP's CLI executable to run PHP-GTK. This php.ini file
; should be in the..................

extension_dir = "./ext"

; Make sure that php-gtk2.dll under Windows, or php-gtk2.so under Unix, is in
; the directory named in extension_dir alongside any other shared PHP extensions
; you intend to use, and tell PHP to load it.

extension = php_gtk2.dll
extension = php_mysql.dll
extension = php_pgsql.dll
extension = php_mysqli.dll
;extension = php_pdo.**
;extension = php_sqlite.**
;extension = php_pdo_sqlite.**

[Date]
; Defines the default timezone used by the date functions
date.timezone = America_CostaRica

[PHP-GTK]

;;;;;;;;;;;;;;;;;;;;;;
; PHP-GTK extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; Extensions written for PHP-GTK are in the format php_gtk_*.dll (Windows) or
; php_gtk_*.so (Unix), written here as a comma-separated list. The library
; files need to be in the same directory as the PHP-GTK library, along with
; any other PHP extensions you are using.

php-gtk.extensions = php_gtk_libglade2.dll,php_gtk_sourceview2.dll,php_ gtk_extra2.dll,php_gtk_scintilla2.dll

;;;;;;;;;;;;;
; Code Page ;
;;;;;;;;;;;;;

; The string variables used for titles and other text values in GTK+ are
; encoded in UTF-8 internally. A code page is needed so that PHP-GTK 'knows'
; which character set is being used, and can convert it to UTF-8 as necessary.

; If your environment uses UTF-8 already, you can set the codepage directive
; to UTF-8 to skip the conversions.

; The default codepage setting in PHP-GTK 2 is ISO-8859-1, but you can also
; use either OEM (e.g. 850) or Windows Code Pages (e.g. CP1250) here, so
; long as the encoding format you choose is capable of iconv conversion. See
; http://www.microsoft.com/globaldev/reference/cphome.mspx for a list of
; the code pages and character sets that are supported on Windows systems.

php-gtk.codepage = CP1250

P.S2.
Parece ser que los .dll copiados funcionan sean estos de mi php corriente
o el php-5.2.5 de que te especifique anteriormente.

Última edición por franco190453; 21/08/2011 a las 18:52
  #12 (permalink)  
Antiguo 23/08/2011, 01:51
 
Fecha de Ingreso: febrero-2008
Mensajes: 31
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Duda sobre PHP-GTK2 y PostgreSQL

Hola de nuevo,

La verdad es que viendo tu última respuesta no me has dejado más remedio que intentarlo de nuevo y tengo que decirte que esta vez Sí me ha funcionado!!
He seguido paso a paso todas las indicaciones que ha detallado y he conectado con la BD. Es más ya he recuperado datos y los muestro en el popup que genero.

franco190453, simplemente agradecerte enormemente la ayuda que me has dado porque esto me permite retomar el proyecto

Si alguna vez te dejas caer por Valencia, que sepas estás invitado a un par de cervezas

Gracias una vez más.
Saludos

PD: Que sepáis que a día de hoy este hilo es la mayor fuente de información sobre php-gtk2 y postgreSQL de toda la red.

Etiquetas: php-gtk, postgresql
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 12:21.