Updating Data through Objects
        Posted  
        
            by Chacha102
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Chacha102
        
        
        
        Published on 2010-03-26T02:27:13Z
        Indexed on 
            2010/03/26
            2:33 UTC
        
        
        Read the original article
        Hit count: 351
        
So, lets say I have a record:
$record = new Record();
and lets say I assign some data to that record:
$record->setName("SomeBobJoePerson");
How do I get that into the database. Do I.....
A) Have the module do it.
class Record{
    public function __construct(DatabaseConnection $database)
    {
        $this->database = $database;
    }
    public function setName($name)
    {
        $this->database->query("query stuff here");
        $this->name = $name;
    }
}
B) Run through the modules at the end of the script
class Record{
    private $changed = false;
    public function __construct(array $data=array())
    {
        $this->data = $data;
    }
    public function setName($name)
    {
        $this->data['name'] = $name;
        $this->changed = true;
    }
    public function isChanged()
    {
        return $this->changed;
    }
    public function toArray()
    {
        return $this->array;
    }
}
class Updater
{
    public function update(array $records)
    {
         foreach($records as $record)
         {
             if($record->isChanged())
             {
                 $this->updateRecord($record->toArray());
             }
         }
    }
    public function updateRecord(){ // updates stuff
    }
 }
© Stack Overflow or respective owner