Well, I'm at home now, and don't have my extraction script handy, but I use MySQL, PostgreSQL, MSSQL, and Oracle all in conjunction on one of my sites. I ended up building that functionality in there to allow flexability, expecially for Oracle. My coding style is all lowercase, except for globals. Oracle has a force uppercase on it's fields, so I had to remember when flipping back and forth between databases. This helped ease that a bit by allowing me to specify numbers when I wanted to with Oracle, and still use row names with others. Another one was when I wanted to loop results from a large selection, but still only pick one out. Helps me from having to count the number of fields when I specifically know which field is to be returned.
My return comes back in an array consisting of rows as the first element and fields as the second element, so
Array (
[rows] = Array (
[fields] = field result
)
)
I can see drawmack or Weedpacket bashing this already, but oh well, it's more of personal preference for me. I do have variables I can pass to my functions to specify fields names or numeric keys to be returned, but default that to both.