Логиката ви на mysqli изглежда добре, има някои примери в PHP ръководството тук в случай, че не сте ги виждали.
Защо обаче избирате идентификатора, когато не го консумирате? Също така всъщност не е необходимо да свързвате резултат, когато ще има само един ред, върнат в пълния набор от резултати, както предполагам, че ще се случи в този случай (ID е уникален индекс в таблицата), използвайте get_result вместо това.
Използването на mysqli ready ще защити от всички често срещани атаки с инжектиране, но не и от неща в стил 0 дни, които все още не са стигнали до драйвера.