I must say that I for one find the idea of a function erecting a DB connection to run one query and then tearing it down before returning, to be pretty durn fugly.
Of course, that can come down to a matter of just what your program needs to do. Maybe it is the best choice in your case. If that's the only place in the whole codebase that does any DB work, and can only ever be called once in an entire invocation, maybe it's a good method.
But, I don't think that's most of the world. And the Law of Feeping Creatures says it won't be your world long, even if it is at the moment :)