Twoja logika mysqli wydaje się w porządku, jest kilka przykładów w instrukcji PHP tutaj na wypadek, gdybyś ich nie widział.
Dlaczego jednak wybierasz identyfikator, kiedy go nie używasz? Ponadto nie musisz wiązać wyniku, gdy w pełnym zestawie wyników zostanie zwrócony tylko jeden wiersz, ponieważ zakładam, że stanie się to w tym przypadku (ID jest unikalnym indeksem w tabeli), użyj get_result zamiast tego.
Korzystanie z przygotowania mysqli ochroni przed wszystkimi typowymi atakami wstrzykiwania, ale nie przed rzeczami typu 0-day, które nie dotarły jeszcze do sterownika.