Avatar billede jangravgaard Nybegynder
06. maj 2003 - 20:39 Der er 12 kommentarer og
1 løsning

Class problemer

Hej

Jeg får fejl på min klasse som jeg ikke lige kan finde, er også lidt nybegynder i php klasse verdenen.

fil : postgredb.php
<?php

class dbclass {
  var $dbhost;
  var $dbname;
  var $dbuser;
  var $dbpass;
  var $dbport;
  var $dbconn;

  function dbclass(){


  }

  function opendb() {
    $this->dbhost = 'host=angua.skjoldhoej.dk';
    $this->dbport = '5432';
    $this->dbname = 'fcs';
    $this->dbuser = 'fcs';
    $this->dbpass = 'janfcs';
    $this->dbconn = pg_connect($this->dbhost $this->dbport $this->dbname $this->dbuser $this->dbpass);
    return $this->dbconn;
  }

  function closedb($conn){
    if(!pg_close($conn)){
          echo "Kunne ikke lukke forbindelsen til PostGre!";
        return false;
    }else{
        return true;
    }
  }


}

?>

fil: test.php

<?

        #funktioner
        include_once("postgredb.php");

        $myclass = new dbclass();
        $connection = myclass::opendb();
        myclass::closedb($connection);

?>

Fejl :

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /home/fcs/php/postgredb.php on line 4

Fatal error: Cannot instantiate non-existent class: dbclass in /home/fcs/php/test.php on line 6

Hvad er det jeg mangler ??
Avatar billede roenving Novice
06. maj 2003 - 20:45 #1
Jeg gætter -- er uden forudsætninger i PHP -- på at,

du har fat i en eller anden form for
- fejl i variabelnavn
  - reserveret navn dbhost

- ulovlig deklarering af variabel (måske T_VAR ?)
Avatar billede erikjacobsen Ekspert
06. maj 2003 - 20:54 #2
Prøv at se om du ikke har et magisk, usynligt tegn forrest på
linien med
  var $dbhost;
slet evt. tegnene før var, og sæt så blanke ind.
Avatar billede erikjacobsen Ekspert
06. maj 2003 - 20:55 #3
og så skal du rette til
$this->dbconn = pg_connect($this->dbhost,$this->dbport,$this->dbname,$this->dbuser,$this->dbpass);
Avatar billede jangravgaard Nybegynder
06. maj 2003 - 21:02 #4
nu ser det sådan ud, men stadig samme fejl:

class dbclass {
  var $mydbhost;
  var $dbname;
  var $dbuser;
  var $dbpass;
  var $dbport;
  var $dbconn;

  function dbclass(){
          return;
  }

  function opendb() {
    $this->mydbhost = 'host=angua.skjoldhoej.dk';
    $this->dbport = '5432';
    $this->dbname = 'fcs';
    $this->dbuser = 'xxxxx';
    $this->dbpass = 'xxxxx';
    $this->dbconn = pg_connect($this->dbhost,$this->dbport,$this->dbname,$this->dbuser,$this->dbpass);
    return $this->dbconn;
  }
Avatar billede jangravgaard Nybegynder
06. maj 2003 - 21:05 #5
ups:
$this->dbconn = pg_connect($this->mydbhost,$this->dbport,$this->dbname,$this->dbuser,$this->dbpass);
Avatar billede erikjacobsen Ekspert
06. maj 2003 - 21:07 #6
Den giver ingen fejl hos mig - kan det have at gøre med det sted inkluderer den?
Avatar billede erikjacobsen Ekspert
06. maj 2003 - 21:08 #7
(ja, du mangler en } nederst . men det er vel en klippeklistre fejl)
Avatar billede jangravgaard Nybegynder
06. maj 2003 - 21:19 #8
nu har jeg puttet det hele i een fil og får stadig samme fejl, der er altså ingen includes der kan ødelægge noget....

kan det være fordi serveren kun kører php version 4.1.2 ??
Avatar billede erikjacobsen Ekspert
06. maj 2003 - 21:49 #9
nej. Er det stadig linie 4? Der er ikke noget galt. Har du
fjernet alle "blanke" - det ser ud til at være eneste mulighed.
Avatar billede jangravgaard Nybegynder
06. maj 2003 - 21:52 #10
Nu ser det sådan ud :

<?php

class dbclass {
    var $dbmyhost;
    var $dbmyname;
    var $dbmyuser;
    var $dbmypass;
    var $dbmyport;
    var $dbmyconn;

  function dbclass(){
          return;
  }



  function opendb(){
    $this->dbmyhost = 'host=angua.skjoldhoej.dk';
    $this->dbmyport = '5432';
    $this->dbmyname = 'fcs';
    $this->dbmyuser = 'xxx';
    $this->dbmypass = 'xxxx';
    $this->dbmyconn = pg_connect($this->dbmyhost,$this->dbmyport,$this->dbmyname,$this->dbmyuser,$this->dbmypass);
    return $this->dbmyconn;
  }

  function closedb($conn){
      if(!pg_close($conn)){
          echo "Kunne ikke lukke forbindelsen til PostGre!";
          return false;
      }else{
          return true;
      }
  }
}

  $mydbclass = new dbclass();
  $connection = $mydbclass::opendb();
  $mydbclass::closedb($connection);

?>

Der har vist været nogle skjulte tegn, som er fjernet nu, men der er stadig parse error i linje 38 (Parse error: parse error in /home/fcs/php/postgredb.php on line 38
)
Avatar billede erikjacobsen Ekspert
06. maj 2003 - 21:56 #11
$mydbclass->opendb();
Avatar billede jangravgaard Nybegynder
06. maj 2003 - 22:05 #12
ahh, så ser det ud til at virke, smid et svar, så får du point :-)
Avatar billede erikjacobsen Ekspert
06. maj 2003 - 22:14 #13
:)
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