Si quieres hacerlo bien desde un principio necesitas aplicar algo que en OOP se llama Separación de responsabilidades u obligaciones.
http://en.wikipedia.org/wiki/Separation_of_concerns
Los objetos están hechos para ser "entidades separadas" Desacopladas para poder hacer sistemas altamente escalables.
Observaciones a tu código.
1.- Decidete por un Estándar de codificación, si vas a usar "under_score" o "CamelCase", podrias seguir este.
http://framework.zend.com/wiki/displ...tandard+(draft)
2.- Separa en otros objetos responsabilidades (SQL,Validación de Datos, Adaptador de base de datos)
3.- Prefiere usar utf-8 en lugar de escapar cáracteres con htmlentities ya que tu DB quedara más limpia.
4.- Divide y venceras