It sounds like you might be combining the functionality of database access with a business logic class.
When not using an ORM layer and working with smaller applications, I will generally create a single class responsible for all interactions with the database. This class will contain reusable bits of queries to be called upon by methods within that class. I declare these bits as private static attributes. This class does not store any data. Rather, it simply passes data to the calling script or class. To reduce memory consumption, I implement this class using a Singleton pattern to ensure that any script that needs to use this class uses the same instance of the class and does not allocate additional memory. Since the class is not used to store global data, the perils of using a singleton in this case are avoided.
Also, I will advise you to not worry too much about memory consumption unless you are working with limited hardware resources and/or a heavily trafficked site.