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 ??
Annonceindlæg fra Genetec
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 ?)
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.
og så skal du rette til $this->dbconn = pg_connect($this->dbhost,$this->dbport,$this->dbname,$this->dbuser,$this->dbpass);
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; }
ups: $this->dbconn = pg_connect($this->mydbhost,$this->dbport,$this->dbname,$this->dbuser,$this->dbpass);
Den giver ingen fejl hos mig - kan det have at gøre med det sted inkluderer den?
(ja, du mangler en } nederst . men det er vel en klippeklistre fejl)
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 ??
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.
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 )
ahh, så ser det ud til at virke, smid et svar, så får du point :-)
Vi tilbyder markedets bedste kurser inden for webudvikling