I am still undecided (or haven't read enough) on how to propagate errors, error messages and error codes to caller all the way up
As you can tell from my code - I am also undecided!
This was something that I hoped people would comment on and I wasn't disappointed.
I am fairly sure that I don't need to go as far as implementing full blown Exceptions, especially for modules that will only ever be used internally. This is the first time I have tried setting an 'error' field within the module to provide a verbose message and it seems to work quite well. Having said that, I would like to adopt more consistency both in this module and for other modules going forward.
I do like the idea of an init(); method although I'm not sure of a situation where I would want to reconnect to the database within the same session.