I'm afraid there is no definitive answer, it depends on the project at hand.
I've been pondering the same question as yours for my own project. In search for an answer I've been looking at some PHP books and according to George Schlossnagle in 'Advanced PHP Programming' there are three possible options:
1) Using the Active Record Pattern: the class takes care of saving it's data into the database. Very useful if the class has a simple correspondence with individual table rows, but harder to use if your class depends on data from multiple tables
2) Using the Mapper pattern: One class (the Mapper) deals with the database and the other class for example the User class deals only with the User object itself. Basically the Mapper maps the User class to the database structure.
3) A combination of both, which Schlossnagle calls 'Integrated Mapper'
Personally I would have one class dealing with the mere basics of PDO: connecting with the database and performing a query. Basically making sure you only have to use your DB credentials in one place. All object specific queries I would deal with them in the object's class, since the data of the object is in my view strongly linked with the database structure, so if the class structure changes the database structure probably needs to accommodate those changes as well. And vice versa. So I'm leaning towards using a combination of both Active Record and Mapper pattern.
I hope this helps you in formulating your own solution.