Мое мнение, надо использовать OOP, создать класс сущность, который отвечал бы за таблицу-сущность или связку master-detail
и уже дергать методы этого класса, а не накладывать SQL на методы PHP (изврат имхо типа smartDB или UserRecord::finder()->findBy_username_and_password)
Определяем класс UserModel в корором определены всевозможные взаимодействия с таблицей users
определяем в этом классе метод: autorize( $userName, $password );
имеем красивую и стройную структуру кода!
Все счастливы, Все идут пить пиво!
а говнокодеры правят баги...
сравниваем понятность кода:
UserRecord::finder()->findBy_username_and_password)
$User->getModel()->autorize( $userName, $password );