Considering it's a singleton, the result will be the same : there will be only one instance of your DB object, and it'll always be the same.
So, both solutions will work, and produce the same result ; at least, if your DB class is used every time an instance of your class is created -- and, of course, the performance difference will probably be negligible.
Still, going with the solution of getting the singleton instance in the constructor and using a class variable in the other methods has an advantage : your methods will not depend on this singleton, but only on a class variable...
... Which means Dependency Injection will be much easier (you'll only have to modify your __construct
method, and not each method of the class) if you want to use it one day -- for instance, to "Mock" your DB class, for automated testing purposes.
For more informations, you can take a look at this blog post : What is Dependency Injection?