Alle mysqli-Funktionen/Methoden können fehlschlagen, in diesem Fall geben sie „false“ zurück. Dh Wenn Prepare() fehlschlägt, ist $stmt kein Objekt, für das Sie eine Methode aufrufen können, sondern ein bool(false). Sie müssen die Rückgabewerte überprüfen und eine Fehlerbehandlung hinzufügen, z. B.
$stmt = $mysqli->prepare('SELECT name FROM `rooms` WHERE r_id=?');
if ( !$stmt ) {
printf('errno: %d, error: %s', $mysqli->errno, $mysqli->error);
die;
}
$b = $stmt->bind_param('i', $roomID);
if ( !$b ) {
printf('errno: %d, error: %s', $stmt->errno, $stmt->error);
}
$b = $stmt->execute();
if ( !$b ) {
and so on and on
siehe http://docs.php.net/mysqli-stmt.errno et al.
in diesem Fall sind Sie wahrscheinlich auf das Problem gestoßen, dass Sie keine weitere Anweisung erstellen können, solange noch Ergebnisse/Ergebnissätze für die vorherige Anweisung anstehen.
siehe http://docs.php.net/mysqli-stmt.close
: