Потому что никто никогда не читает документацию.
В которой написано, например - какой массив возвращает fetchAll(). И можно ли из него получить что-то в виде $user_data['id'].
А ещё в мануале написано, какая на самом деле функция подойдёт в данном случае.
Также, там написано, что делает функция fetchColumn(). Которая, во-первых, делает совсем не то что думает автор кода, а во-вторых, даже если бы и делала, то всё равно здесь никаким боком не нужна.
И я уже не говорю, что в мануале написано темно-красным по светло-красному, что MD5 нельзя использовать для хэширования паролей.