Hallo,
Ich hab mir jetzt mehrfach ein Video von Video2Brain angesehen wo es um Funktionen geht. Wenn ich alles richtig verstanden habe, wird eine Funktion so aufgebaut
function referenzen() {
$stmt = $mysqli->prepare("SELECT ref_id, ref_bild, ref_alt, ref_status FROM web_referenzen WHERE ref_status = '1' LIMIT 6");
$stmt->execute();
$stmt->bind_result($ref_id, $ref_bild, $ref_alt, $ref_status);
}
Und meine Ausgabe müsste doch so aussehen
referenzen();
while($stmt->fetch()) {
?>
<img src=<?php echo htmlspecialchars($ref_bild);?>" alt="<?php echo htmlspecialchars($ref_alt);?>">
<?php
}
?>
Es kommt nun allerdings ein Fehler wie auch gestern Abend.
m.php on line 4 Fatal error: Call to a member function prepare() on a non-object in
Was mache ich denn falsch? Ich verstehe es einfach nicht. Dann noch eine Frage zu einer Class, muss um eine Funktion immer eine Class?
Hab es auch so getestet:
class projekt
{
function referenzen() {
$stmt = $mysqli->prepare("SELECT ref_id, ref_bild, ref_alt, ref_status FROM web_referenzen WHERE ref_status = '1' LIMIT 6");
$stmt->execute();
$stmt->bind_result($ref_id, $ref_bild, $ref_alt, $ref_status);
}
}
und meine Ausgabe so:
$hallo = new projekt;
$hallo->referenzen();
while($stmt->fetch()) {
?>
<img src="<?php echo htmlspecialchars($ref_bild);?>" alt="<?php echo htmlspecialchars($ref_alt);?>">
<?php
}
?>
Dann bekomme ich diese Meldung:
m.php on line 7 Fatal error: Call to a member function prepare() on a non-object in
Der Aufbau meiner Datenbankverbindung sieht so aus
<?php
$mysqli = new mysqli("xxx", "xxx", "xxx", "xxx");
if ($mysqli->connect_error) {
echo "Fehler bei der Verbindung: " . mysqli_connect_error();
exit();
}
if (!$mysqli->set_charset("utf8")) {
echo "Fehler beim Laden von UTF8 ". $mysqli->error;
}
?>
Egal was ich mache, es funktioniert einfach nicht.