Well, I think what you need is multiple inhertiance that PHP doesn't support. Of course if we put some time on this we can find a way (it's always true about everything!), but why don't you pass your parent objects (those that you need everywhere) to your children objects? I know that it looks ugly somehow, but then I don't think that even inheritance can help ya. For example about this db object, you should instantiate it with some variables, like the db name, password and ... So, you need a constructor. But also in the child class that you use your db class (as a father), you need a constructor too, so, what's the point? If you write a constructor for the child class, then by instantiating the child object, the parent object doesn't get its variables and etc. I always pass my parent objects to the children and they're all ok!
PS: Currently I'm writing something similiar, I have a user class, which should access 3 different tables, means 3 different db objects! So, the only thing that I came up with was passing the db objects to the user class, that's very ugly, I know, but the best thing I got (yet!).