Avatar billede madiedk Nybegynder
24. september 2006 - 22:50 Der er 19 kommentarer og
1 løsning

PHP og postgres

hej

jeg er lidt ny i PHP verden og kender lidt til SQL

jeg har en apache webserver kørende der understøtter php, mit problem er at jeg ikke kan få PHP til at snakke med min postgres database, er der nogle der kan lave et eksempel i ved der virker, jeg har google i 10 timer nu, så har set mange man kan sku ikke få det til at virke, jeg ved at min server understøtter PHP, det har jeg tjekket.
Avatar billede coderdk Praktikant
24. september 2006 - 23:37 #1
Er postgres understøttet af din PHP? Prøv at lave en side med følgende indhold: <?php phpinfo(); ?> og se om du har en pgsql del... Hvis ikke, så mangler du postgresql support...

Eksemplet på http://dk.php.net/pgsql burde virke, hvis du har ;)
Avatar billede madiedk Nybegynder
25. september 2006 - 00:00 #2
jeg kan ikke finde noget med "pgsql" heller ikke når jeg søger på "postgres" finder den noget på siden så det har jeg vel ikke, hvordan får jeg sådan en pgsqldel
Avatar billede coderdk Praktikant
25. september 2006 - 00:09 #3
PHP skal recompiles så den understøtter postgres (eller et pgsql modul skal loades i PHP) - Snak med din webhoteludbyder :)
Avatar billede madiedk Nybegynder
25. september 2006 - 00:14 #4
jeg har min egen webserver apache, hvordan loader jeg et pgsql modul i PHP
Avatar billede madiedk Nybegynder
25. september 2006 - 00:26 #5
jeg har fået den til at vise pqsql når jeg kører <?php phpinfo(); ?>  men jeg kan stadig ikke få det til at virke, er der en måde jeg kan teste på om den overhoved snakker sammen med min postgres database? noget kode jeg kan køre eller noget?
Avatar billede coderdk Praktikant
25. september 2006 - 02:07 #6
Du kan prøve:

$connStr = "host=dinserver.dk port=5432 dbname=dindatabase user=enbruger password=kodeord";
if ( pg_connect( $connStr ) )
{
  echo "Det lykkedes...";
}
else
{
  echo "Kunne ikke connecte til databasen... PG gav fejlen: " . pg_last_error();
}
Avatar billede madiedk Nybegynder
25. september 2006 - 13:39 #7
jeg har gemt den som test.php og kørt den via min webserver, men det eneste den spytter ud er:
$db = pg_connect("host=localhost port=5432 dbname=MinDB user=postgres password=postgres"); if ( pg_connect( $connStr ) ) { echo "Det lykkedes..."; } else { echo "Kunne ikke connecte til databasen... PG gav fejlen: " . pg_last_error(); }
Avatar billede coderdk Praktikant
25. september 2006 - 14:51 #8
Erh, har du husket at starte filen med <?php og slutte den med ?> ?
Avatar billede madiedk Nybegynder
25. september 2006 - 15:02 #9
ups:-) nu skriver den: Kunne ikke connecte til databasen... PG gav fejlen:
Avatar billede coderdk Praktikant
25. september 2006 - 15:04 #10
Og har du husket at ændre de forskellige ting som f.eks. dinserver.dk til din database-server osv? ;)
Avatar billede madiedk Nybegynder
25. september 2006 - 15:18 #11
jep, det står sådan nu:
<?php

$db = pg_connect("host=localhost port=5432 dbname=MinDB user=postgres password=postgres");

if ( pg_connect( $connStr ) )
{
  echo "Det lykkedes...";
}
else
{
  echo "Kunne ikke connecte til databasen... PG gav fejlen: " . pg_last_error();
}
?>
Avatar billede madiedk Nybegynder
25. september 2006 - 15:21 #12
jeg ved ikke om du kan bruge det til noget
http://85.82.252.223/new.php
Avatar billede coderdk Praktikant
25. september 2006 - 15:28 #13
Har du prøvet at connecte til din pgsql med psql, eller en anden postgresql-klient? Måske phpPgAdmin eller pgAdmin?
Avatar billede madiedk Nybegynder
25. september 2006 - 15:31 #14
jeg bruger pgadmin og har oprette database der og prøvet nogle querys der virker fint. jeg er ny i PHP, jeg kan ikke helt se hvad  $connStr  skal gøre? er det ikke bare en variabel eller returner den true?
Avatar billede coderdk Praktikant
25. september 2006 - 15:36 #15
Nej, $connStr indeholder de informationer som PHP skal bruge for at forbinde til din database... Hostnavn, brugernavn, kodeord og databasenavn - Uden dem ved den jo ikke hvad du skal gøre - De samme ting har du jo skrevet i pgAdmin...?
Avatar billede madiedk Nybegynder
25. september 2006 - 15:40 #16
ja det har jeg, jeg har sat pg_dbname() ind og kan se at den kun retunerer den når database navnet er rigtigt, så den har altså kontakt til databasen
Avatar billede madiedk Nybegynder
25. september 2006 - 15:50 #17
kan du lave en query i PHP der går ind i databasen i en tabel der hedder kunde og går ind i den og printer alle navne ud fra en kolonne der hedder navn, bare for at se om måske virker så
Avatar billede coderdk Praktikant
25. september 2006 - 15:58 #18
Tjah, men fandt vi ikke ud af at webserveren ikke kunne connecte?
Denne burde gøre det såfremt databasenavn, brugernavn, kodeord og hostnavn er korrekt:

<?php

  $c = pg_connect( "host=localhost port=5432 dbname=MinDB user=postgres password=postgres" ) or die( "Kan ikke forbinde til databasen!" );
  $qh = pg_query( $c, "SELECT navn FROM kunde" );
  while ( $row = pg_fetch_assoc( $qh ) )
  {
      echo "Navn: $row[navn]<br>";
  }
  pg_free_result( $qh );
  pg_close( $c );

?>

Webserveren er din egen maskine, ikke?
Avatar billede madiedk Nybegynder
25. september 2006 - 16:03 #19
fandme ja nu virker det, super, mange tak for hjælpen, smid et svar så få du point
Avatar billede coderdk Praktikant
25. september 2006 - 16:14 #20
Ah skide godt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester