Keď si prečítaš dokumentáciu k mysqli_query, tak uvidíš, že táto funkcia vráti hodnotu podľa toho, či prebehla úspešne:
Return Values
Returns FALSE on failure.
Túto návratovú hodnotu by si mal testovať pri každom volaní mysqli_query. Ku presnej chybe sa potom dostaneš pomocou funkcie mysqli_error.
Aby ti nevznikali duplicitní používatelia v databáze, tak si pridaj UNIQUE constraint do MySQL tabuľky, pretože toto by si mal mať ošetrené hlavne v databáze, a až potom v PHP aplikácii.