Considering I do not know what your MySQL class does exactly, in theory, this code looks fine to me. When you call your blah() method the user local db variable has been set to an instance of MySQL and it's Open() method has been called. This is all assuming that the MySQL class has been included in the page that calls user.
If you wanna get really slick, you could do your own database abstraction layer and build an abstract database class and use it for building your MySQL class. Then you could just pass your MySQL instance to your user class via type hinting (ensuring that you have valid database class to consume.)
There are two benefits to this. One, is that you could call more than one MySQL class instance for different servers, databases, etc. and call your user class (or other classes) with different instances. The other benefit is that if you need a Postgresql object, it will have to implement the same functions as the database base class because it is now an interface. Your user class will still accept it (type hinting) and all the methods and properties are the same so you'll need no changes to your user class (or others.) This is where OOP coding gets interesting 🙂
Another thing you can do, is to "register" all your classes under one "registry" class and pass the "registry" class instance to each class. Basically, this ensures that all your classes have access to each other's instance.