Making a bit of progress on the site. I've been picking away at stuff while I'm at work which has been good. I managed to find some php code that does exactly what I want with seperating out most of the database functions. It should really help cut down on the code and also means that if anything changes with my MySQL setup then I only have to change it in 1 spot. The one thing I don't like is that it still makes use of some MySQL specific functions in the individual functions themselves (mysql_fetch_array()). All of the other connection stuff is handled by a seperate class now which is nice. I need to see if I can move this into that class (or another seperate function) because then I could make all the code db independant except for the one DB function. That way if I switch to a different database (like Oracle or Sybase) then I could update just 1 function to make it work. Abstraction layers are definitely cool. Need to see if I can set this up somehow. What I'm really looking for is something like Perl's DBI interface.