function execute()
 {
     $definition = $this->tag;
     $table_name = $definition->attributes()->to;
     $create = DB::newInsert($table_name);
     foreach ($definition as $tag_name => $tag) {
         $create->add($tag->attributes()->name, "" . $tag);
     }
     $create->exec();
 }
Пример #2
0
 public function save($do)
 {
     if ($do == null || !$do instanceof AbstractDO) {
         throw new InvalidParameterException("L'oggetto non è un DO valido.");
     }
     $pks = $this->__getPrimaryKeyFields();
     $all_fields = $this->__getAllFields();
     if ($do->__isNew()) {
         $xx = DB::newInsert($this->__getMyTable());
         $insert = true;
     } else {
         if (!$do->__isChanged()) {
             return;
         }
         $xx = DB::newUpdate($this->__getMyTable());
         foreach ($pks as $field) {
             //imposto i primary key fields
             $xx->addConditionEquals($field, $do->{$field});
         }
         $insert = false;
     }
     if ($insert) {
         //echo "Doing insert ...";
         $field_list = $do->__get_fields();
         foreach ($field_list as $key => $value) {
             $saved = false;
             if (isset($this->fetchedAsProperties[$key])) {
                 $xx->add($key, PropertiesUtils::saveToString($value, false));
                 $saved = true;
             }
             if (!$saved) {
                 //prevedere l'utilizzo di addBoolean + test
                 $xx->add($key, $value);
             }
         }
         if (isset($all_fields["dataora_creazione"])) {
             $xx->addNow("dataora_creazione");
         }
     } else {
         //echo "Doing update ...";
         $field_list = $do->__getChangedFields();
         foreach ($field_list as $key) {
             $saved = false;
             if (isset($this->fetchedAsProperties[$key])) {
                 $xx->add($key, PropertiesUtils::saveToString($do->{$key}, false));
                 $saved = true;
             }
             if (!$saved) {
                 //prevedere l'utilizzo di addBoolean + test
                 $xx->add($key, $do->{$key});
             }
         }
     }
     if (isset($all_fields["dataora_ultima_modifica"])) {
         $xx->addNow("dataora_ultima_modifica");
     }
     $xx->exec();
     //se posso salvo l'id nella chiave primaria.
     if ($do->__isNew() && count($pks) == 1) {
         $insert_id = $xx->insert_id();
         $do->{$pks[0]} = $insert_id;
     }
     $do->__markAsSaved();
 }
Пример #3
0
 function insert_row($definition)
 {
     $table_name = $definition->attributes()->to;
     $create = DB::newInsert($table_name);
     foreach ($definition as $tag_name => $tag) {
         $create->add($tag->attributes()->name, "" . $tag);
     }
     $create->exec();
 }