Hallo,
Die Antwort steht vielleicht in der Fehlermeldung, die MySQL wirft. Wertest du die aus? Eine Fehlerbehandlung ist in deinen Codeausschnitten nicht zu sehen. Wie das grundlegend geht, steht in den Beispielen im Handbuch: http://php.net/manual/en/mysqli.quickstart.prepared-statements.php. In der Praxis muss man sich dazu aber geeignetere Lösungen ausdenken, als den Anwender mit solchen internen Meldungen zu beglücken.
ich lass die Fehlermeldungen so ausgegeben: echo $mysqli -> error; wird allerdings nichts ausgegeben.