# $stmt->bindParam("s", session_id());
$stmt->execute(session_id());
Versuche es mal so, wie oben angedeutet.
Ich hab es mit deinem Beispiel getestet, kommt aber die gleiche Fehlermeldung „Fatal error: Call to a member function execute() on a non-object in Zeile 28§
Welchen Parameter s wolltest Du denn überhaupt binden? ich sehe im Statement-Text überhaupt keinen.
OK, ich hab den Code etwas geändert
$stmt = $mysqli->prepare("SELECT * FROM users WHERE user_session=:sid");
$stmt->bindParam(":sid", session_id());
$stmt->execute();
Hier müssen wir ein wenig pingeliger mit der Sprache umgehen: Die FUNKTION session_id() LIEFERET einen String mit der Session-ID, aber erst dannw, wenn sie aufgerufen wird.
Die Methode bindParam() verlangt aber eine VARIABLE, an die der Parameter gebunden wird. Die muss in dem Moment, wo sie gebunden wird, bereits vorhanden sein!
Kann sein ich verstehe dich nicht richtig, aber session_start() wird in meiner index Seite augerufen, wenn ich session_id() ausgeben lassen, sehe ich einen Wert, also wird sie doch aufgerufen und gefüllt?