本文整理汇总了PHP中Zend_Db_Adapter_Abstract::update方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Db_Adapter_Abstract::update方法的具体用法?PHP Zend_Db_Adapter_Abstract::update怎么用?PHP Zend_Db_Adapter_Abstract::update使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Db_Adapter_Abstract
的用法示例。
在下文中一共展示了Zend_Db_Adapter_Abstract::update方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: update
public function update(ActiveSync_Model_SyncState $_syncState)
{
$where = array($this->_db->quoteInto('device_id = ?', $_syncState->device_id), $this->_db->quoteInto('type = ?', $_syncState->type), $this->_db->quoteInto('counter = ?', $_syncState->counter));
$newData = array('lastsync' => $_syncState->lastsync);
$result = $this->_db->update(SQL_TABLE_PREFIX . 'acsync_synckey', $newData, $where);
return $result;
}
示例2: execute
/**
* Should handle execution of the task, taking as much (optional) parameters as needed
*
* The parameters should be optional and failing to provide them should be handled by
* the task
*/
public function execute($sourceId = null, $userId = null)
{
$now = new \MUtil_Db_Expr_CurrentTimestamp();
$values = array('gso_last_synch' => $now, 'gso_changed' => $now, 'gso_changed_by' => $userId);
$where = $this->db->quoteInto('gso_id_source = ?', $sourceId);
$this->db->update('gems__sources', $values, $where);
}
示例3: execute
/**
* Should handle execution of the task, taking as much (optional) parameters as needed
*
* The parameters should be optional and failing to provide them should be handled by
* the task
*/
public function execute($lineNr = null, $forRoundOrder = null, $usesRoundRound = null, $roundField = null)
{
$batch = $this->getBatch();
$import = $batch->getVariable('import');
if (!(isset($import['trackId']) && $import['trackId'])) {
// Do nothing
return;
}
if (isset($import['roundOrders'][$usesRoundRound]) && $import['roundOrders'][$usesRoundRound]) {
$this->db->update('gems__rounds', array($roundField => $import['roundOrders'][$usesRoundRound]), $this->db->quoteInto("gro_id_order = ? AND ", $forRoundOrder) . $this->db->quoteInto("gro_id_track = ?", $import['trackId']));
}
}
示例4: execute
/**
* Should handle execution of the task, taking as much (optional) parameters as needed
*
* The parameters should be optional and failing to provide them should be handled by
* the task
*/
public function execute()
{
$role = \Gems_Roles::getInstance();
$parents = $this->db->fetchPairs("SELECT grl_id_role, grl_parents FROM gems__roles");
// \MUtil_Echo::track($parents);
if ($parents) {
foreach ($parents as $id => $priv) {
$values['grl_parents'] = implode(',', $role->translateToRoleIds($priv));
$this->db->update('gems__roles', $values, $this->db->quoteInto('grl_id_role = ?', $id));
}
}
}
示例5: execute
/**
* Should handle execution of the task, taking as much (optional) parameters as needed
*
* The parameters should be optional and failing to provide them should be handled by
* the task
*/
public function execute($tableName = '', $idField = '', $passwordField = '', $methodField = '')
{
$passwords = $this->db->fetchPairs("SELECT {$idField}, {$passwordField} FROM {$tableName} WHERE {$passwordField} IS NOT NULL AND {$methodField} IS NULL");
if ($passwords) {
$values[$methodField] = 'default';
foreach ($passwords as $key => $password) {
$values[$passwordField] = $this->project->encrypt($password, $values[$methodField]);
$this->db->update($tableName, $values, "{$idField} = '{$key}'");
}
$this->getBatch()->addMessage(sprintf($this->_('%d passwords encrypted for table %s.'), count($passwords), $tableName));
} else {
$this->getBatch()->addMessage(sprintf($this->_('No passwords found in table %s.'), $tableName));
}
}
示例6: validate
/**
* get array of ids which got send to the client for a given class
*
* @param Syncope_Model_IDevice|string $_deviceId
* @param Syncope_Model_IFolder|string $_folderId
* @return Syncope_Model_SyncState
*/
public function validate($_deviceId, $_folderId, $_syncKey)
{
$deviceId = $_deviceId instanceof Syncope_Model_IDevice ? $_deviceId->id : $_deviceId;
$folderId = $_folderId instanceof Syncope_Model_IFolder ? $_folderId->id : $_folderId;
$select = $this->_db->select()->from($this->_tablePrefix . 'synckey')->where($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId)->where($this->_db->quoteIdentifier('counter') . ' = ?', $_syncKey)->where($this->_db->quoteIdentifier('type') . ' = ?', $folderId);
$stmt = $this->_db->query($select);
$state = $stmt->fetchObject('Syncope_Model_SyncState');
$stmt = null;
# see https://bugs.php.net/bug.php?id=44081
if (!$state instanceof Syncope_Model_ISyncState) {
return false;
}
$this->_convertFields($state);
// check if this was the latest syncKey
$select = $this->_db->select()->from($this->_tablePrefix . 'synckey')->where($this->_db->quoteIdentifier('device_id') . ' = ?', $deviceId)->where($this->_db->quoteIdentifier('counter') . ' = ?', $_syncKey + 1)->where($this->_db->quoteIdentifier('type') . ' = ?', $folderId);
$stmt = $this->_db->query($select);
$moreRecentState = $stmt->fetchObject('Syncope_Model_SyncState');
$stmt = null;
# see https://bugs.php.net/bug.php?id=44081
// found more recent synckey => the last sync repsone got not received by the client
if ($moreRecentState instanceof Syncope_Model_ISyncState) {
// undelete entries marked as deleted in syncope_content table
$this->_db->update($this->_tablePrefix . 'content', array('is_deleted' => 0), array('device_id = ?' => $deviceId, 'folder_id = ?' => $folderId, 'creation_synckey = ?' => $state->counter, 'is_deleted = ?' => 1));
// remove entries added during latest sync in syncope_content table
$this->_db->delete($this->_tablePrefix . 'content', array('device_id = ?' => $deviceId, 'folder_id = ?' => $folderId, 'creation_synckey > ?' => $state->counter));
} else {
// finaly delete all entries marked for removal in syncope_content table
$this->_db->delete($this->_tablePrefix . 'content', array('device_id = ?' => $deviceId, 'folder_id = ?' => $folderId, 'is_deleted = ?' => 1));
}
// remove all other synckeys
$this->_deleteOtherStates($state);
return $state;
}
示例7: aggregate
public function aggregate($object)
{
if (!$object->getEntityPkValue() && $object->getId()) {
$object->load($object->getReviewId());
}
$ratingModel = Mage::getModel('rating/rating');
$ratingSummaries = $ratingModel->getEntitySummary($object->getEntityPkValue(), false);
$nonDelete = array();
foreach ($ratingSummaries as $ratingSummaryObject) {
if ($ratingSummaryObject->getCount()) {
$ratingSummary = round($ratingSummaryObject->getSum() / $ratingSummaryObject->getCount());
} else {
$ratingSummary = $ratingSummaryObject->getSum();
}
$reviewsCount = $this->getTotalReviews($object->getEntityPkValue(), true, $ratingSummaryObject->getStoreId());
$select = $this->_read->select();
$select->from($this->_aggregateTable)->where("{$this->_aggregateTable}.entity_pk_value = ?", $object->getEntityPkValue())->where("{$this->_aggregateTable}.entity_type = ?", $object->getEntityId())->where("{$this->_aggregateTable}.store_id = ?", $ratingSummaryObject->getStoreId());
$oldData = $this->_read->fetchRow($select);
$data = new Varien_Object();
$data->setReviewsCount($reviewsCount)->setEntityPkValue($object->getEntityPkValue())->setEntityType($object->getEntityId())->setRatingSummary($ratingSummary > 0 ? $ratingSummary : 0)->setStoreId($ratingSummaryObject->getStoreId());
$this->_write->beginTransaction();
try {
if ($oldData['primary_id'] > 0) {
$condition = $this->_write->quoteInto("{$this->_aggregateTable}.primary_id = ?", $oldData['primary_id']);
$this->_write->update($this->_aggregateTable, $data->getData(), $condition);
} else {
$this->_write->insert($this->_aggregateTable, $data->getData());
}
$this->_write->commit();
} catch (Exception $e) {
$this->_write->rollBack();
}
}
}
示例8: save
/**
* save data
* @param string $key
* @param int $language_id
* @param string $val
* @return boolean
*/
public function save($key, $language_id, $val, $section = "", $import = false, $newKey = "")
{
$data = array('key' => $newKey == "" ? $key : $newKey, 'language_id' => $language_id, 'value' => $val, 'section' => $section);
$selectTranslate = $this->_dbTable->select()->where('`language_id` = ?', $language_id)->where('`key` = ?', $data['key']);
if ($section != "" && !$import) {
$data['section'] = $section;
}
if ($section != "" && $import) {
$selectTranslate->where('`section` = ?', $section);
}
$rowTranslate = $selectTranslate->query()->fetchObject();
// ->toArray()
if (is_object($rowTranslate)) {
$res = $this->_dbTable->update($data, array('id = ?' => $rowTranslate->id));
if (!$import) {
$this->cacheCleanTranslation();
}
return $res == 1;
} else {
$res = $this->_dbTable->insert($data);
if (!$import) {
$this->cacheCleanTranslation();
}
return $res > 0;
}
}
示例9: _insertContentTypes
/**
*
* @param array $contentTypes
*/
protected function _insertContentTypes(array $contentTypes)
{
$contentTypeModel = $this->getModelFromCache('XenForo_Model_ContentType');
$existingContentTypes = $contentTypeModel->getContentTypesForCache();
foreach ($contentTypes as $contentType => $contentTypeParams) {
$existingFields = array();
if (isset($existingContentTypes[$contentType])) {
$existingFields = $existingContentTypes[$contentType];
}
if (isset($contentTypeParams['addon_id'])) {
if (isset($contentTypeParams['fields'])) {
$contentTypeFields = array($contentType => $contentTypeParams['fields']);
$this->_insertContentTypeFields($contentTypeFields);
$existingFields = array_merge($contentTypeFields, $existingFields);
}
$fields = serialize($existingFields);
$addOnId = $contentTypeParams['addon_id'];
$sql = "INSERT INTO xf_content_type (\n content_type,\n addon_id,\n fields\n ) VALUES (\n '" . $contentType . "',\n '" . $addOnId . "',\n '" . $fields . "'\n ) ON DUPLICATE KEY UPDATE\n addon_id = '" . $addOnId . "',\n fields = '" . $fields . "'";
$this->_db->query($sql);
$existingContentTypes[$contentType] = $existingFields;
} else {
$this->_db->update('xf_content_type', array('fields' => serialize($existingFields)), 'content_type = ' . $this->_db->quote($contentType));
}
}
$dataRegistryModel = $this->getModelFromCache('XenForo_Model_DataRegistry');
$dataRegistryModel->set('contentTypes', $existingContentTypes);
}
示例10: testUpdate
/**
* Test the Adapter's update() method.
* Update a single row and verify that the change was made.
* Attempt to update a row that does not exist, and verify
* that no change was made.
*
* @todo: test that requires delimited identifiers.
*/
public function testUpdate()
{
$idKey = $this->getResultSetKey('id');
$titleKey = $this->getResultSetKey('title');
$subtitleKey = $this->getResultSetKey('subtitle');
$table = $this->getIdentifier(self::TABLE_NAME);
$title = $this->getIdentifier('title');
$subtitle = $this->getIdentifier('subtitle');
$newTitle = 'New News Item 2';
$newSubTitle = 'New Sub title 2';
// Test that we can change the values in
// an existing row.
$result = $this->_db->update($table, array($title => $newTitle, $subtitle => $newSubTitle), 'id = 2');
$this->assertEquals(1, $result);
// Query the row to see if we have the new values.
$select = $this->_db->select();
$select->from($table);
$select->where('id = 2');
$stmt = $this->_db->query($select);
$result = $stmt->fetchAll();
$this->assertEquals(2, $result[0][$idKey]);
$this->assertEquals($newTitle, $result[0][$titleKey]);
$this->assertEquals($newSubTitle, $result[0][$subtitleKey]);
// Test that update affects no rows if the WHERE
// clause matches none.
$result = $this->_db->update($table, array('title' => $newTitle, 'subtitle' => $newSubTitle), 'id = 327');
$this->assertEquals(0, $result);
}
示例11: move
/**
* Move tree node
*
* @todo Use adapter for generate conditions
* @param Varien_Data_Tree_Node $node
* @param Varien_Data_Tree_Node $newParent
* @param Varien_Data_Tree_Node $prevNode
*/
public function move($node, $newParent, $prevNode = null)
{
$position = 1;
$oldPath = $node->getData($this->_pathField);
$newPath = $newParent->getData($this->_pathField);
$newPath = $newPath . '/' . $node->getId();
$oldPathLength = strlen($oldPath);
$newLevel = $newParent->getLevel() + 1;
$levelDisposition = $newLevel - $node->getLevel();
$data = array($this->_levelField => new Zend_Db_Expr("{$this->_levelField} + '{$levelDisposition}'"), $this->_pathField => new Zend_Db_Expr("CONCAT('{$newPath}', RIGHT({$this->_pathField}, LENGTH({$this->_pathField}) - {$oldPathLength}))"));
$condition = $this->_conn->quoteInto("{$this->_pathField} REGEXP ?", "^{$oldPath}(/|\$)");
$this->_conn->beginTransaction();
$reorderData = array($this->_orderField => new Zend_Db_Expr("{$this->_orderField} + 1"));
try {
if ($prevNode && $prevNode->getId()) {
$reorderCondition = "{$this->_orderField} > {$prevNode->getData($this->_orderField)}";
$position = $prevNode->getData($this->_orderField) + 1;
} else {
$reorderCondition = $this->_conn->quoteInto("{$this->_pathField} REGEXP ?", "^{$newParent->getData($this->_pathField)}/[0-9]+\$");
$select = $this->_conn->select()->from($this->_table, new Zend_Db_Expr("MIN({$this->_orderField})"))->where($reorderCondition);
$position = (int) $this->_conn->fetchOne($select);
}
$this->_conn->update($this->_table, $reorderData, $reorderCondition);
$this->_conn->update($this->_table, $data, $condition);
$this->_conn->update($this->_table, array($this->_orderField => $position, $this->_levelField => $newLevel), $this->_conn->quoteInto("{$this->_idField} = ?", $node->getId()));
$this->_conn->commit();
} catch (Exception $e) {
$this->_conn->rollBack();
throw new Exception("Can't move tree node due to error: " . $e->getMessage());
}
}
示例12: save
public function save(Mage_Admin_Model_Permissions_Roles $role)
{
if ($role->getPid() > 0) {
$row = $this->load($role->getPid());
} else {
$row = array('tree_level' => 0);
}
if ($role->getId()) {
$this->_write->update($this->_roleTable, array('parent_id' => $role->getPid(), 'tree_level' => $row['tree_level'] + 1, 'role_name' => $role->getName()), "role_id = {$role->getId()}");
} else {
$this->_write->insert($this->_roleTable, array('parent_id' => $role->getPid(), 'tree_level' => $row['tree_level'] + 1, 'role_name' => $role->getName(), 'role_type' => $role->getRoleType()));
$role->setId($this->_write->lastInsertId());
}
$this->_updateRoleUsersAcl($role);
return $role->getId();
}
示例13: updateAll
public function updateAll(My_Model_Mapper_IdentityObject $identity, array $data)
{
if (empty($data)) {
throw new Exception("Data can not be empty");
}
return $this->_connection->update($this->_tablename, $data, $this->_getSelection()->where($identity));
}
示例14: authorizeBlock
/**
* Checks if the user is allowed to login or is blocked
*
* An adapter authorizes and if the end resultis boolean, string or array
* it is converted into a \Zend_Auth_Result.
*
* @return mixed \Zend_Auth_Adapter_Interface|\Zend_Auth_Result|boolean|string|array
*/
protected function authorizeBlock()
{
try {
$select = $this->db->select();
$select->from('gems__user_login_attempts', array('UNIX_TIMESTAMP(gula_block_until) - UNIX_TIMESTAMP() AS wait'))->where('gula_block_until is not null')->where('gula_login = ?', $this->getLoginName())->where('gula_id_organization = ?', $this->getCurrentOrganizationId())->limit(1);
// Not the first login
if ($block = $this->db->fetchOne($select)) {
if ($block > 0) {
$minutes = intval($block / 60) + 1;
// Report all is not well
return sprintf($this->plural('Your account is temporarily blocked, please wait a minute.', 'Your account is temporarily blocked, please wait %d minutes.', $minutes), $minutes);
} else {
// Clean the block once it's past
$values['gula_failed_logins'] = 0;
$values['gula_last_failed'] = null;
$values['gula_block_until'] = null;
$where = $this->db->quoteInto('gula_login = ? AND ', $this->getLoginName());
$where .= $this->db->quoteInto('gula_id_organization = ?', $this->getCurrentOrganizationId());
$this->db->update('gems__user_login_attempts', $values, $where);
}
}
} catch (\Zend_Db_Exception $e) {
// Fall through as this does not work if the database upgrade did not run
// \MUtil_Echo::r($e);
}
return true;
}
示例15: setETags
/**
* sets etags, expects ids as keys and etags as value
*
* @param array $etags
*
* @todo maybe we should find a better place for the etag functions as this is currently only used in Calendar + Tasks
*/
public function setETags(array $etags)
{
foreach ($etags as $id => $etag) {
$where = array($this->_db->quoteInto($this->_db->quoteIdentifier($this->_identifier) . ' = ?', $id));
$this->_db->update($this->_tablePrefix . $this->_tableName, array('etag' => $etag), $where);
}
}