Hey Leute,
ich habe da mal ne frage.
und zwar bin ich dabei eine datenbank klasse zu schreiben. Testweise und vermutlich auch mit anwendungszweck.
Die Klasse heisst db und wird um die Klasse MySQLi erweitert.
sooooo
Im Konstruktor werden nur die Varibalen uebergeben, die als Parameter zur Erstellung der Klasse verlangt werden und es wird die Funktion open() aufgerufen, um eine MySQLi Verbindung aufzubauen. Hier bekomme ich schon ein paar Schwierigkeiten.
Hier der Code:
so wie es da steht funktioniert alles.
Jetzt will ich aber, dass die Variable $mysqli das MySQLi Objekt der extended Klasse enthaelt und ich mit dieser weiter arbeiten kann.
Probiert habe ich es an diese Zeile:
Worauf ich folgende Fehlermeldung erhalten habe:
Wie muss ich verfahren, um der Variable $mysqli as MySQLi Objket zuzuweisen?
mfg
Mad Dog
EDIT:
Habe (glaube ich) die Loesung des Problems gefunden.
Anstatt den Konstruktor der MySQLi Klasse aufzurufen, habe ich es so gemacht:
Ist das eine gute Loesung oder gibt es einen besseren Weg?
ich habe da mal ne frage.
und zwar bin ich dabei eine datenbank klasse zu schreiben. Testweise und vermutlich auch mit anwendungszweck.
Die Klasse heisst db und wird um die Klasse MySQLi erweitert.
sooooo
Im Konstruktor werden nur die Varibalen uebergeben, die als Parameter zur Erstellung der Klasse verlangt werden und es wird die Funktion open() aufgerufen, um eine MySQLi Verbindung aufzubauen. Hier bekomme ich schon ein paar Schwierigkeiten.
Hier der Code:
Code:
<?php
class db extends MySQLi
{
/* DATABASE VARIABLES */
public $host;
public $user;
public $pass;
public $dbase;
public $mysqli;
public $mysqli_stmt;
public $error;
public $errno;
public function __construct($host, $user, $pass, $dbase)
{
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
$this->dbase = $dbase;
$this->open();
}
public function open()
{
$this->mysqli = parent::__construct($this->host, $this->user, $this->pass, $this->dbase);
if ($this->mysqli_stmt = parent::stmt_init())
{
return true;
}
else
{
return false;
}
}
}
?>
Jetzt will ich aber, dass die Variable $mysqli das MySQLi Objekt der extended Klasse enthaelt und ich mit dieser weiter arbeiten kann.
Probiert habe ich es an diese Zeile:
Code:
$this->mysqli_stmt = $this->mysqli->stmt_init()
Interpretiert habe ich den Fehler so, dass die Variable $mysqli NICHT das MySQLi Objekt erhalten hat.Fatal error: Call to a member function stmt_init() on a non-object in C:\Programs\xampp\htdocs\randomchat\rara\class_db.php on line 27
Wie muss ich verfahren, um der Variable $mysqli as MySQLi Objket zuzuweisen?
mfg
Mad Dog
EDIT:
Habe (glaube ich) die Loesung des Problems gefunden.
Anstatt den Konstruktor der MySQLi Klasse aufzurufen, habe ich es so gemacht:
$this->mysqli = new mysqli ($this->host,
$this->user,
$this->pass,
$this->dbase);
Ist das eine gute Loesung oder gibt es einen besseren Weg?
Zuletzt bearbeitet: