PHP: "Fatal error: Call to undefined function: pg_connect()"

talla

Mitglied
Thread Starter
Registriert
03.10.2005
Beiträge
120
hallo,

ich hab schon wieder ein problem :( habe postgres, php (von entropy) auf tiger laufen. die php-skripte funktionieren auf einem linux-server problemlos (php4, auf beiden rechnern), d.h. grundsaetzlich muesste das login lokal auf meinem rechner ja auch tun. versuche ich mich jedoch ueber die web-oberflaeche einzuloggen, bekomme ich o.g. fehlermeldung. (die funktion ist sehr wohl definiert + tut wie gesagt auf einem anderen rechner auch.)
hab ueber google folgenden hinweis gefunden:
http://www.php-faq.de/q/q-fehler-modul-unix.html
auf php.net
http://de.php.net/manual/en/function.pg-connect.php
diesen user-comment:
After upgrading to PHP 4.2.3 from PHP 4.1.2 (Red Hat Linux Advanced Server with Stronghold 4.0) in order to manually compile in MHASH support, I discovered that Postgres support has disappeared, despite being specified on the command line, and compiling with no errors. [...] FATAL: Undefined function: pg_connect()

Confirmed by looking at the output of phpinfo() and comparing it to the output pre-upgrade - no mention of PostgreSQL in the new one.

Detective work led me to find that the old pgsql.so in /usr/lib/php4 was untouched, and the new one had ended up in /usr/lib/20020429 instead.

The fix was to edit config_vars.mk after configuration to change the value of EXTENSION_DIR, and then compile.
letzteres ist fuer mich komplett boehmisches dorf. kann mir bitte jemand weiterhelfen?
 

r560

Mitglied
Registriert
15.02.2005
Beiträge
138
Hast du PHP mit Postgres in der php.ini freigegeben? Die Fehlermeldung sagt ja aus, dass dein PHP die Funktion nicht kennt.

Gruß
Richard
 

talla

Mitglied
Thread Starter
Registriert
03.10.2005
Beiträge
120
Hast du PHP mit Postgres in der php.ini freigegeben?
how to?

phpinfo gibt mir unter dem abschnitt "pgsql" an, dass PostgreSQL "enabled" sei, allerdings die 7.4.6 version (ich hab 8.0.3) - kann mir nicht vorstellen, dass es daran liegt. ... oder?

der relevante abschnitt in der php.ini sieht so aus
Code:
[PostgresSQL]
; Allow or prevent persistent links.
pgsql.allow_persistent = On

; Detect broken persistent links always with pg_pconnect(). 
; Auto reset feature requires a little overheads.
pgsql.auto_reset_persistent = Off

; Maximum number of persistent links.  -1 means no limit.
pgsql.max_persistent = -1

; Maximum number of links (persistent+non persistent).  -1 means no limit.
pgsql.max_links = -1

; Ignore PostgreSQL backends Notice message or not.
; Notice message logging require a little overheads.
pgsql.ignore_notice = 0

; Log PostgreSQL backends Noitce message or not.
; Unless pgsql.ignore_notice=0, module cannot log notice message.
pgsql.log_notice = 0
sagt mir nicht wirklich was. wo muesste ich etwas aendern?
 

wegus

Moderator
Registriert
13.09.2004
Beiträge
17.525
phpinfo verrät Dir, ob Dein PHP-Modul überhaupt mit postgres-Unterstützung kompiliert wurde! Es gibt zig Module die man in PHP einkompilieren kann oder eben auch nicht. Davon das die Unterstützung in der .ini aktiviert wurde, sind die libraries noch lange nicht integriert.
entscheidend ist bei der Ausgabe von phpinfo, obe eine Zeile "--with-pgsql" oder "--with-postgres" enthalten ist. Dann würde ich mich an Deiner Stelle auch wundern, wenn es nicht geht.
Die Meldung "undefined function" weist m.E. auf eine fehlende libraray für postgres hin. Vielleicht fehlt die in dem PHP-Paket schlicht? Hast Du im entropy.ch forum mal nachgefragt?
 

talla

Mitglied
Thread Starter
Registriert
03.10.2005
Beiträge
120
DAU @work

aehm... der fehler lag in httpd.config. muss beim herausnehmen der aenderungen nach anleitung hier im forum (wg. installation des entropy-packages) versehentlich einen leerschritt oder sowas irgendwo reingetippt haben. mit der httpd.config-sicherungskopie laeuft alles einwandfrei + pg_connect ist bekannt.
***imbodenversink***

danke r560 und wegus fuers lesen + mitdenken + sorry fuer den falschen alarm!
ich geh jetzt wieder in die ecke + schaem mich.
 
Oben