Matchmaking system - sorting musicians by skills, genres, and location
OOP


Why have a get method, if your not going to use it (eg in get_user_by_username)?
It's not clear what the responsibility of your class is. DB suggests that it's some kind of generic wrapper around PDO (with methods such as query and get fitting into it), but then it's also the user dao? That's a bit much for one class. If you separate it into DbWrapper (query and get) and UserDAO (get_by_username and find_user) you should be on the right track.
It's not ok to just dump an exception in a class (the calling code cannot do anything to recover, you have ugly output to the enduser), and it's also not ok to just die inside a class (again, no possibility to recover for the calling class). If you can't recover in the class, just throw the exception upwards.


Misc


be consistent with your SQL: all keywords should be all uppercase (see eg where).
Why do you return false for no results? I think an empty array works just as well (and it's what is returned by PDO, so it means less code).