Avatar billede Slettet bruger
19. juni 2009 - 22:38 Der er 2 kommentarer og
1 løsning

Spørgsmål omkring OOP

Hejsa!

Jeg har:

class appController
-> public function useDB() = new mysqli

class controller extends appController
-> function add() = *

* Herinde vil jeg gerne have mulighed for at lave en funktion der kan benytte databasen, altså funktionen useDB fra appController. Den funktion vil jeg gerne kunne benytte i alle funktioner inde i class controller - hvor skal jeg placere min funktion og skal der eventuelt laves noget om?

I kan se funktionen her:
function dbInsert($table, $array, $array2=false){
    if($array2 !== false){
        $aNames = $array;
        $aValues = $array2;
    } else {
        $aNames = array_keys($array);
        $aValues = array_values($array2);
    }
    foreach($aNames as $key=>$val){ $a .= "`{$val}`, "; } $a = substr($a, 0, -2);
    foreach($aValues as $key=>$val){ $b .= "\"{$val}\", "; } $b = substr($b, 0, -2);
    $query = "INSERT INTO `{$table}` ({$a}) VALUES ({$b})";
    mysql_query($query) or die(mysql_error());
}

Problemet er jo at der ikke er forbindelse til MySQL på den måde, at jeg via mysql_query() kan benytte den.

På forhånd tak!
Håber I forstår mit spørgsmål :)

Caspar
Avatar billede Slettet bruger
19. juni 2009 - 22:48 #1
Ved at erstatte:

-  mysql_query($query) or die(mysql_error());

Med:

- $this->useDB();
- $this->DBcon->query($query);

Får jeg denne fejlmeddelelse:

- http://cms01.gocms.dk/index.php?module=products&sub=add

Fatal error: Using $this when not in object context in /var/www/vhosts/gocms.dk/subdomains/cms01/httpdocs/system/db_functions.php on line 13

Linje 13 = $this->useDB();

- og en public $this; går den ikke med til :(
Avatar billede Slettet bruger
19. juni 2009 - 22:52 #2
Linket var en fejl, ignorer :)
Avatar billede Slettet bruger
19. juni 2009 - 22:57 #3
Problem solved, den skulle selvfølgelig kaldes som $this->dbInsert i stedet for bare dbInsert. :)
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