I've got some functions that edit or read my db. Is it a good idea to start a transaction the first thing I do, and commit or rollback it the last thing I do, rather on a per-function-basis? 

Does the new or the old values get read if in same transaction, but before a commit? 

I want a transaction behavior over all function calls within each page load.

EDIT:

I'm only using simple, single row sql statements. All the logic is done in php.