Hi
ich habe leider noch riesige Probleme mit der OOP. Liegt zum Teil an der fehlenden Übung zum anderen daran, dass ich den Sinn wohl nocht nicht ganz durchschaut habe. Jedenfalls habe ich eine MySQLi-Klasse gefunden:
Alles anzeigen
Diese binde ich per extend in eine zweite Klasse ein und möchte von dieser Klasse Chat auf die Funktion query() zugreifen.
Alles anzeigen
Aufruf:
Nur erhalte ich immer Fehlermeldungen. Die letzte ist jetzt:
An dieser Stelle komme ich leider wirklich nicht mehr weiter, denn egal wie ich die Variable anspreche erhalte ich immer Fehlermeldungen, dass die Variable nicht definiert ist. Bitte klärt mich auf. Gerne auch Meinungen zum Code bis jetzt, da ich überzeugt bin, dass einige Programmierer kurz vor dem Herzinfarkt waren, als sie meinen Code gesehen haben^^
Danke schonmal
ich habe leider noch riesige Probleme mit der OOP. Liegt zum Teil an der fehlenden Übung zum anderen daran, dass ich den Sinn wohl nocht nicht ganz durchschaut habe. Jedenfalls habe ich eine MySQLi-Klasse gefunden:
Quellcode
- class DB
- {
- /**
- * @var <str> The mode to return results, defualt is MYSQLI_BOTH, use setFetchMode() to change.
- */
- public $fetchMode = MYSQLI_BOTH;
- /**
- * @desc Creates the MySQLi object for usage.
- *
- * @param <arr> $db Required connection params.
- */
- public function __construct($db) {
- $this->mysqli = new mysqli($db['host'], $db['user'], $db['pass'], $db['table']);
- if (mysqli_connect_errno())
- {
- printf("<b>Connection failed:</b> %s\n", mysqli_connect_error());
- exit;
- }
- }
- /**
- * @desc Simple preparation to clean the SQL/Setup result Object.
- *
- * @param <str> SQL statement
- * @return <bln|null>
- */
- public function query($SQL)
- {
- $SQL = $this->mysqli->real_escape_string($SQL);
- $this->result = $this->mysqli->query($SQL);
- if ($this->result == true)
- {
- return true;
- }
- else
- {
- printf("<b>Problem with SQL:</b> %s\n", $this->SQL);
- exit;
- }
- }
- // und so weiter
- }
Diese binde ich per extend in eine zweite Klasse ein und möchte von dieser Klasse Chat auf die Funktion query() zugreifen.
Quellcode
- class Chat extends DB {
- public $chat_id;
- public $last_id;
- public $db;
- public function __construct($config) {
- $db = parent::__construct($config);
- }
- public static function getLines($chat_id, $last_id) {
- $select = $this->db->query("SELECT * FROM `lines` JOIN `user` ON lines_author = user_id WHERE lines_chat = '".$chat_id."' AND lines_id > '".$last_id."' ORDER BY lines_id") or die(mysqli_error);
- }
- }
Aufruf:
Nur erhalte ich immer Fehlermeldungen. Die letzte ist jetzt:
Fatal error: Using $this when not in object context in C:\xampp\htdocs\project\Chat.class.php on line 15
An dieser Stelle komme ich leider wirklich nicht mehr weiter, denn egal wie ich die Variable anspreche erhalte ich immer Fehlermeldungen, dass die Variable nicht definiert ist. Bitte klärt mich auf. Gerne auch Meinungen zum Code bis jetzt, da ich überzeugt bin, dass einige Programmierer kurz vor dem Herzinfarkt waren, als sie meinen Code gesehen haben^^
Danke schonmal