protected function update($table, $data, $pk) { $oQuery = new DbUpdater(DbUpdater::TYPE_UPDATE, $table, 't', $this->dbConnection); $oQuery->setElement($data); $oCriteria = new CriteriaElement('id', Criteria::EQUAL, $pk); $oQuery->addCriteria($oCriteria->renderWhere()); $oQuery->update(); }
public function update(Object $oObject) { if (!$oObject->isNew()) { $this->saveForRelationData($oObject, true); $aContainer = $this->getContainer(); $sClassName = $this->sModelAlias; $oQuery = new DbUpdater(DbUpdater::TYPE_UPDATE, $this->tableName(), $sClassName, $this->getDbConnectionAlias()); $aInput = array(); $aData = $oObject->export(); unset($aData['Id']); foreach ($this->fields() as $alias => $field) { if (!empty($field['Virtual']) && $field['Virtual']) { unset($aData[$alias]); } } foreach ($aData as $k => $itm) { if (!key_exists($k, $this->fields())) { unset($aData[$k]); } else { $aInput[$this->parseUpdateField($k)] = $itm; } } $oQuery->setElement($aInput); $oCriteria = new CriteriaElement('Id', Criteria::EQUAL, $oObject->getId()); $oQuery->addCriteria($this->parseUpdateCriteria($oCriteria->renderWhere())); $oQuery->update(); $this->saveForRelationData($oObject); return $oObject->getId(); } else { return false; } }
protected function updateTableData($table, $data) { if (isset($data['Insert'])) { foreach ($data['Insert'] as $insert) { $oQuery = new DbUpdater(DbUpdater::TYPE_INSERT, $table, 't', $this->_dbConnection); $oQuery->setElement($insert); $oQuery->insert(); } } if (isset($data['Update'])) { foreach ($data['Update'] as $insert) { $oQuery = new DbUpdater(DbUpdater::TYPE_UPDATE, $table, 't', $this->_dbConnection); $oQuery->setElement($insert); $oCriteria = new CriteriaElement('id', Criteria::EQUAL, $insert['id']); $oQuery->addCriteria($oCriteria->renderWhere()); $oQuery->update(); } } }
private function processDbUpdates() { if (isset($_GET['db']) && $_GET['db'] == 'update') { include_once LIB_ROOT . '/db_updater.class.php'; $db = new DbUpdater(); $db->setDbUpdatesFile(DOC_ROOT . '/db_updates.php'); $db->update(); } }