Frank started his career with local club Blackburn Rovers but made his professional debut on loan at Wycombe Wanderers, in a 1-0 win against Bradford City, in September 2007.
While he failed to make the breakthrough at Rovers, he enjoyed further loan spells with the Chairboys, Northampton Town, Rochdale, Leeds United and Derby County.
Having made a big impression during his time with the Rams, he penned a permanent deal in May 2011 and went on to play a further 60 Championship games for the club.
In June 2013 he joined Bristol City and was an ever-present as the Robins won promotion back to the Championship in 2014/15.
He made over 180 appearances during a successful time at Ashton Gate before moving to fellow Championship club Millwall in the summer of 2019.
A former England youth player, he made two appearances at U19 level before winning 12 caps for the U21 side. He also made the bench for senior squad, against Hungary, at Wembley in 2010.