PHP datenbank class: Using $this when not in object context

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • PHP datenbank class: Using $this when not in object context

    HiHo,

    Ich kann zwar Gästebücher, kleine Foren, News Seiten erstellen aber was ich nie kapiert habe sind Klassen und Objekte.
    Ich könnt euch sicher vorstellen was das bei einem Forum dann für eine Arbeit ist. Nun wollte ich mich gerne damitbeschäftigen, stosse aber schon bei der ersten sql abfragen auf Probleme.

    Quellcode

    1. class db_klasse
    2. {
    3. var $host = "localhost";
    4. var $user = "root";
    5. var $pass = "xx";
    6. var $dbname = "test";
    7. var $db_link = true;
    8. function db_klasse() //Konstruktor ruf db_connect() auf
    9. {
    10. $this->db_connect($this->host,$this->user,$this->pass,$this->dbname);
    11. }
    12. function db_connect($host,$user,$pass,$dbname) //baut die verbindung auf
    13. {
    14. $this->db_link = @mysql_pconnect($host,$user,$pass) or die ("Datenbankverbindung nicht möglich!");
    15. $this->db_choose($dbname);
    16. }
    17. function db_choose($dbname) // wählt die datenbank
    18. {
    19. @mysql_select_db($dbname) or die ("Datenbank konnte nicht ausgewählt werden!");
    20. }
    21. function db_query($query) // sendet einen query
    22. {
    23. $res = @mysql_query($query, $this->db_link) or die ("Abfrage war ungültig!".mysql_error());
    24. return $res;
    25. }
    26. }
    27. // DB Abfrage
    28. $sql = 'SELECT *
    29. FROM ' . CONFIG;
    30. $this->db_query->$sql;
    Alles anzeigen


    Fehlermeldung:
    Fatal error: Using $this when not in object context in C:\xampp\htdocs\newirc\includes\core.php on line 17
  • HiHo,

    Nein, core.php ist nicht meine Datenbank.
    In der Core habe ich alles wichtige drinne.

    Quellcode

    1. // put full path to Smarty.class.php
    2. require('includes/smarty/Smarty.class.php');
    3. $smarty = new Smarty();
    4. include_once('lang/de/main.php');
    5. include_once('includes/db.php');
    6. include_once('includes/constants.php');
    7. $smarty->template_dir = 'templates/default';
    8. $smarty->compile_dir = 'templates_c';
    9. $smarty->cache_dir = 'cache';
    10. // Read Config
    11. $res = 'SELECT *
    12. FROM ' . CONFIG;
    13. $this->db_query($res);
    14. while($row = mysql_fetch_assoc($res))
    15. {
    16. $config[$row['config_name']] = $row['config_value'];
    17. }
    18. function page_header($title)
    19. {
    20. global $smarty, $lang;
    21. $smarty->assign(array(
    22. 'LANG' => $lang,
    23. 'PAGE_TITLE' => $title,
    24. ));
    25. $smarty->display('header.htm');
    26. }
    27. function page_footer()
    28. {
    29. global $smarty;
    30. $smarty->assign('name', 'Ned');
    31. $smarty->display('footer.htm');
    32. }
    Alles anzeigen


    Zeile 17 in der Core ist die DB Abfrage.
    Die DB klasse steht in db.php