コード例 #1
0
ファイル: ChunsuObject.php プロジェクト: bd808/casadebender
 /**
  * Commit changes to the main data set.  This is performed by save()
  * and should not be done manually in most cases.
  */
 function commit()
 {
     if (!is_null($this->changeset)) {
         $core =& $this->getCore();
         if (!is_array($core) && !is_object($core)) {
             $pks = $this->storage_method->getPrimaryKeys();
             $this->set(array($pks[0] => $core));
         }
         foreach (array_keys($this->changeset) as $key) {
             parent::setref($this->changeset[$key], $key);
         }
     }
     $this->changeset = NULL;
 }
コード例 #2
0
 /**
  * Remove an object.
  * @param ChunsuObject $removeme The object to remove.
  * @param DataSource $source The data source to remove the object from.
  * @return bool TRUE is successful, FALSE otherwise.
  */
 function remove(&$removeme, $source)
 {
     parent::remove($removeme, $source);
     $gen = new SQLGenerator($removeme->getCore());
     $removequeries = $gen->delete($this->config);
     foreach ($removequeries as $rq) {
         $cursor =& $source->query($rq);
         $rv = $cursor->getNext();
         if (!$rv) {
             LogError("remove query failed! removing " . print_r($removeme, TRUE));
             return FALSE;
         }
     }
     $rv = $cursor->getNext();
     if (!$rv) {
         LogError("Remove failed! Removing " . print_r($removeme, TRUE));
         return FALSE;
     }
     if ($rows = $cursor->get('affected-rows') > 1) {
         LogWarning("{$rows} records deleted removing " . print_r($removeme, TRUE));
     }
     $removeme->is_new = $removeme->config->get('create-on-save');
     return TRUE;
 }