# Datenbankabruf mit PHP\[gelÃ¶st\]

**URL:** https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562
**Category:** Programmierung
**Created:** [10. April 2006 um 10:59 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562 "2006-04-10T10:59:10Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![sqlman](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/s/0ea827/32.png) [@sqlman](https://www.pg-forum.de/u/sqlman)
#### Post date: [10. April 2006 um 10:59 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/1 "2006-04-10T10:59:10Z")

</div>

Hi Leute!

Ich habe vor zwei Tagen mit PostgreSQL und PHP angefangen. Neben dem Manual von PostgreSQL habe ich mir noch ein Buch über PHP und ein Tutorial über PHP und Postgres gegeben 😉

Tja, aber leider stecke ich derzeit fest und komme einfach nicht weiter.  
Ich habe auf dem Server mit PostgreSQL eine kleine Datenbank zum Testen gebaut und würde diese jetzt gerne übers Web (erstmal im LAN) abrufen.

Ich habe:  
PostgreSQL 7.4.7  
Apache-SSL 1.33  
PHP Version 4.3.10-16.

Apache, PostgreSQL und PHP arbeiten an sich einwandfrei.

Mein Problem besteht bereits am Anfang: Ich kann zu der Datenbank keine Verbindung aufnehmen, obwohl die Angaben alle korrekt sind.

Der folgende Php-Code

```plaintext
<html>
	<title>Erste Datenbank </title>
	<body>
		<h2>Erste Datenbank </h2>
		
		<?
			echo "Test1..
\n";
			$host="localhost";
			$port="5432";
			$user="sqlusr";
			$password="";
			$dbname="mz";
			$connection = pg_connect("dbname=$dbname
												user=$user
												host=$host
												port=$port");

			echo "Test2..
\n";
			$db=pg_dbname($connection);
			echo "Test3..
\n";
			echo "Name der Datenbank ist $db.
\n";
		
		?>
		
	</body>
</html>

```

erzeugt folgenden Fehler

```plaintext
Erste Datenbank
Test1..

Fatal error: Call to undefined function: pg_connect() in /var/www/php5/index.php on line 13

```

Ich weiss einfach nicht, woran das liegt. Laut dem Tutorial sollte es mit pq\_connect() funktionieren. Es ist doch alles richtig, oder?

Ich habe es auch mal mit

```plaintext
$conn=@pg_connect(...) or die(...);

```

ausprobiert, aber da kam nicht einmal die Meldung, die in “die(…)” steht.

```plaintext
echo "Name der Datenbank ist $db.
\n";

```

wird auch nicht ausgeführt.  
Also er kommt erst garnicht so weit ☹

Ich habe noch nachgeguckt (phpinfo) und es sagt:

> dbx  
> dbx support enabled  
> dbx version 1.0.0  
> supported databases MySQL ODBC PostgreSQL Microsoft SQL Server FrontBase Oracle 8 (oci8) Sybase-CT

Wäre jemand von Euch so nett und würde mir helfen?  
Vielleicht habe ich ja doch was übersehen.

---

<div class="post-metadata">

### Author: ![Xandrian](https://www.pg-forum.de/user_avatar/www.pg-forum.de/xandrian/32/249_2.png) [@Xandrian](https://www.pg-forum.de/u/Xandrian)
#### Post date: [10. April 2006 um 11:03 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/2 "2006-04-10T11:03:01Z")

</div>

hi,

so wie es ausschaut ist der postgresql support nicht installiert. bitte den admin deines server die postgresql packete zu installieren. bei debian ubuntu ist das php4-pgsql bzw php5-pgsql…

cu tb.

---

<div class="post-metadata">

### Author: ![sqlman](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/s/0ea827/32.png) [@sqlman](https://www.pg-forum.de/u/sqlman)
#### Post date: [10. April 2006 um 11:11 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/3 "2006-04-10T11:11:30Z")

</div>

Hi Xandrian!

Ja in der Tat. Jetzt bekomme ich andere Fehlermeldungen - aber es klappt!

> > Vielen herzlichen Dank !! \<\< 😃

und viele Grüsse!  
sqlman

---

<div class="post-metadata">

### Author: ![sqlman](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/s/0ea827/32.png) [@sqlman](https://www.pg-forum.de/u/sqlman)
#### Post date: [10. April 2006 um 11:17 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/4 "2006-04-10T11:17:04Z")

</div>

Jetzt sagt er:

```nohighlight
Erste Datenbank
Test1..

Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: IDENT authentication failed for user "sqlusr" in /var/www/php5/index.php on line 16
Test2..

Warning: pg_dbname(): supplied argument is not a valid PostgreSQL link resource in /var/www/php5/index.php on line 19
Test3..
Name der Datenbank ist .

```

Dabei habe ich doch mit

```nohighlight
createuser sqlusr

```

den Benutzer doch erstellt.  
Der User “sqlusr” verfügt über kein Passwort - zumindest habe ich keins angegeben.

:roll:

Viele Grüsse  
sqlman

---

<div class="post-metadata">

### Author: ![sqlman](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/s/0ea827/32.png) [@sqlman](https://www.pg-forum.de/u/sqlman)
#### Post date: [10. April 2006 um 11:18 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/5 "2006-04-10T11:18:44Z")

</div>

Hmm, könnte es daran liegen

```nohighlight
mz=# \d
           List of relations
 Schema | Name | Type | Owner   
--------+-----------+-------+----------
 public | computers | table | postgres
(1 row)

mz=# select current_user;
 current_user 
--------------
 postgres
(1 row)

```

dass postgres der Owner ist?

Viele Grüsse

sqlman

---

<div class="post-metadata">

### Author: ![sqlman](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/s/0ea827/32.png) [@sqlman](https://www.pg-forum.de/u/sqlman)
#### Post date: [10. April 2006 um 11:36 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/6 "2006-04-10T11:36:29Z")

</div>

Hi,

naja, ich habe jetzt den Owner gewechselt

```plaintext
mz=# ALTER TABLE computers OWNER TO sqlusr;
ALTER TABLE
mz=# \d
          List of relations
 Schema | Name | Type | Owner  
--------+-----------+-------+--------
 public | computers | table | sqlusr
(1 row)

mz=#

```

aber es heisst immernoch:

> Warning: pg\_connect(): Unable to connect to PostgreSQL server: FATAL: IDENT authentication failed for user “sqlusr” in /var/www/php5/index.php on line 16

☹

Was habe ich falsch gemacht?

Danke und Viele Grüsse  
sqlman

---

<div class="post-metadata">

### Author: ![ads](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/a/8e7dd6/32.png) [@ads](https://www.pg-forum.de/u/ads)
#### Post date: [10. April 2006 um 11:38 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/7 "2006-04-10T11:38:15Z")

</div>

Das Problem dürfte eher hierin bestehen:

[http://www.postgresql.org/docs/current/static/client-authentication.html](http://www.postgresql.org/docs/current/static/client-authentication.html)

Nach der Lektüre dieses Dokumentes dürftest du wissen, wie du deinem Client aus dem LAN den connect erlaubst.

---

<div class="post-metadata">

### Author: ![sqlman](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/s/0ea827/32.png) [@sqlman](https://www.pg-forum.de/u/sqlman)
#### Post date: [10. April 2006 um 14:05 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/8 "2006-04-10T14:05:28Z")

</div>

Hi Ads,

ich danke Dir herzlich für den Hinweis.  
Ich habe diesen Abschnitt der Doku überflogen.  
Was ich vergessen habe zu tun, war in der Datei  
/etc/postgresql/pg\_hba.conf  
den folgenden Eintrag zu machen:

```nohighlight
# TYPE DATABASE USER CIDR-ADDRESS METHOD
local all all trust

```

ACHTUNG: Natürlich muss man später, wenn die Datenbank läuft, gewisse restriktive Änderungen vornehmen - aber für den Anfang reicht das.

Viele Grüsse  
sqlman

PS: Für die Leute, die nicht darauf kommen sollten:  
Nach der Änderung der besagten Konfigurationsdatei muss man postgresql natürlich neustarten 😃

---

<div class="post-metadata">

### Author: ![Xandrian](https://www.pg-forum.de/user_avatar/www.pg-forum.de/xandrian/32/249_2.png) [@Xandrian](https://www.pg-forum.de/u/Xandrian)
#### Post date: [10. April 2006 um 15:25 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/9 "2006-04-10T15:25:39Z")

</div>

> [@sqlman](#):
>
> PS: Für die Leute, die nicht darauf kommen sollten:  
> Nach der Änderung der besagten Konfigurationsdatei muss man postgresql natürlich neustarten 😃

falsch 😛 ein reload reicht! vor allem für produktiv systeme interessant weil so der db server nicht weg ist aber die einstellungen auch wirksam werden…

cu tb.

---

<div class="post-metadata">

### Author: ![fristo](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/f/f9ae1b/32.png) [@fristo](https://www.pg-forum.de/u/fristo)
#### Post date: [10. April 2006 um 16:45 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/10 "2006-04-10T16:45:33Z")

</div>

Hallo Xandrian,

“reload”: Was beschreibt man damit, wie macht man das?  
  
  
mfg

fristo

---

<div class="post-metadata">

### Author: ![sqlman](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/s/0ea827/32.png) [@sqlman](https://www.pg-forum.de/u/sqlman)
#### Post date: [10. April 2006 um 16:54 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/11 "2006-04-10T16:54:18Z")

</div>

> [@fristo](#):
>
> Hallo Xandrian,
> 
> “reload”: Was beschreibt man damit, wie macht man das?  
>   
>   
> mfg
> 
> fristo

Hi,

ne Du machst unter Linux einfach nur

```plaintext
/etc/init.d/postgresql reload

```

---

<div class="post-metadata">

### Author: ![system](https://www.pg-forum.de/uploads/default/original/1X/dc97a981dd26692d5fb52e8b8fc7c090d7b9559a.png) [@system](https://www.pg-forum.de/u/system)
#### Post date: [21. Februar 2021 um 07:09 UTC](https://www.pg-forum.de/t/datenbankabruf-mit-php-gela-st/1562/12 "2021-02-21T07:09:57Z")

</div>


