ich benötige nochmal euren Rat. Ich arbeite zur Zeit mit OOP und ebenfalls mit mysqli. Nun erhalte ich immer folgendes (error_reporting(E_ALL), da Entwicklungsmodus).
Jetzt mal abgesehen, von der Funktion mysqli_real_escape_string(), erhalte ich das bei allen mysqli_ Funktionen.
So nun mal das relevante, also wie das initialisiert wird:
class db {
// dbs ist ein array, das hier initialisiert wird
public $msql;
function __construct {
$this->msql = new mysqli($this->dbs['host'],$this->dbs['user'],$this->dbs['pass'],$this->dbs['db']);
}
}
class zwei extends db
{
mysql_query($this->msql, $query);
}
Eigentlich sollte das doch funktionieren? Also ist die vereinfachte Darstellung … Trotzdem behauptet er, dass der erste Parameter null wäre. An den Datenbank-Variablen stimmen auch … ich peils nicht
[code]class db {
// dbs ist ein array, das hier initialisiert wird
public $msql;
function __construct {
$this->msql = new mysqli($this->dbs[‘host’],$this->dbs[‘user’],$this->dbs[‘pass’],$this->dbs[‘db’]);
}
}
class zwei extends db
{
mysql_query($this->msql, $query);
}[/code]
Hi,
(ich geh mal davon aus, dass “mysql_query” kein Typo war…)
also, entweder benutzt du die “normalen” mysql Funktionen oder mysqli…
mysql_query() (eine “normale” Funktion") erwartet als ersten Parameter einen String mit dem Query.
Soweit ich sehe ist das, was du ihm gibst, ein mysqli-Objekt.
Um mit mysqli einen Query auszufuehren benutz $this->msql->query(“stuff”);
äh ja war ein Tippfehler von mir. Ich benutze mysqli …
Wenn ich das so schreibe, wie du mir das rätst, kommt dabei folgendes rum:
Fatal error: Call to a member function query() on a non-object in [...] on line X
// bei $this->msql->query
Anscheinend ist für den Interpreter ja $msql bzw. $this->msql kein Objekt oder sehe ich da was falsch? Aber der Verbindungsaufbau stammt ja aus php.net und die phpinfo() liefert mir auch zurück, dass mysqli unterstützt wird.
b[//Edit: Gelöst, Fehler war, dass ich vergessen hatte, die Instanzierung vorzunehmen. Folgender Aufbau löst das Problem:]b
class db {
// dbs ist ein array, das hier initialisiert wird
public $msql;
function __construct {
$this->msql = new mysqli($this->dbs['host'],$this->dbs['user'],$this->dbs['pass'],$this->dbs['db']);
}
}
class zwei extends db
{
public function __construct() { db::__construct(); }
// usw.
}