Example #1
0
 private function update(Model $model)
 {
     $idProperty = $model->GetIDProperty();
     $properties = $model->GetProperties();
     $modified = $model->GetModifiedProperties();
     if (!empty($modified)) {
         $cols = [];
         $types = [];
         $values = [];
         foreach ($modified as $property => $dbMap) {
             $cols[] = $dbMap['col'];
             $types[] = $dbMap['type'];
             $values[$dbMap['col']] = $dbMap['value'];
         }
         $sql = "UPDATE {$model->GetDbTable()} SET ";
         foreach ($cols as $col) {
             $sql .= "{$col} = :{$col},";
         }
         $sql = substr($sql, 0, -1);
         // remove trailing comma
         $sql .= " WHERE {$properties[$idProperty]['col']} = :{$properties[$idProperty]['col']}";
         $types[] = $properties[$idProperty]['type'];
         $values[$properties[$idProperty]['col']] = $properties[$idProperty]['value'];
         $this->writer->executeQuery($sql, $values, $types);
     }
 }