本文整理汇总了PHP中QueryBuilder::update方法的典型用法代码示例。如果您正苦于以下问题:PHP QueryBuilder::update方法的具体用法?PHP QueryBuilder::update怎么用?PHP QueryBuilder::update使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QueryBuilder
的用法示例。
在下文中一共展示了QueryBuilder::update方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: editGroup
public function editGroup(UserGroup $group)
{
if (empty($group->id) or !is_numeric($group->id)) {
throw new InvalidArgumentException("Group id have to be non empty string");
}
if (empty($group->name)) {
throw new InvalidArgumentException("Group name have to be non empty string");
}
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_GROUPS', 'UserManager'))->set(new Field('name'), $group->name)->set(new Field('description'), $group->description)->where($qb->expr()->equal(new Field('id'), $group->id));
return $this->query->exec($qb->getSQL())->affected();
}
示例2: updateAttachmentMessageId
public function updateAttachmentMessageId($attachmentId, $newMessageId)
{
if (empty($attachmentId) or !is_numeric($attachmentId)) {
throw new InvalidIntegerArgumentException("\$attachmentId have to be non zero integer.");
}
if (empty($newMessageId) or !is_numeric($newMessageId)) {
throw new InvalidIntegerArgumentException("\$newMessageId have to be non zero integer.");
}
$convMgr = Reg::get(ConfigManager::getConfig("Messaging", "Conversations")->Objects->ConversationManager);
$filter = new ConversationMessagesFilter();
$filter->setId($newMessageId);
$message = $convMgr->getConversationMessage($filter);
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_CONVERSATION_ATTACHEMENTS'))->set(new Field('message_id'), $message->id)->where($qb->expr()->equal(new Field('id'), $attachmentId));
MySqlDbManager::getDbObject()->startTransaction();
try {
$convMgr->setMessageHasAttachment($message);
$affected = $this->query->exec($qb->getSQL())->affected();
if (!MySqlDbManager::getDbObject()->commit()) {
MySqlDbManager::getDbObject()->rollBack();
}
} catch (Exception $e) {
MySqlDbManager::getDbObject()->rollBack();
throw $e;
}
}
示例3: updateYubikey
/**
* Update current yubikey
* @param YubikeyObject $key
* @throws YubikeyException
* @return Ambigous <boolean, number>
*/
public function updateYubikey(YubikeyObject $key)
{
if (empty($key)) {
throw new YubikeyException("given yey object is empty");
}
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_KEYS', 'YubikeyUserAuthorization'))->set(new Field("key"), $key->key)->set(new Field("Description"), $key->description)->set(new Field("status"), $key->status)->where($qb->expr()->equal(new Field('id'), $key->id));
return $this->query->exec($qb->getSQL())->affected();
}
示例4: updateHost
public static function updateHost(Host $host)
{
if (empty($host->id)) {
throw new InvalidArgumentException("HostId is empty!");
}
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_HOSTS', 'Host'))->set(new Field('host'), $host->host)->set(new Field('subdomain'), $host->subdomain)->where($qb->expr()->equal(new Field('id'), $host->id));
$sql = MySqlDbManager::getQueryObject();
$sql->exec($qb->getSQL());
}
示例5: updateMap
/**
* Update aliase map of record with given id
*
* @param int $id alias Id
* @param string $map new aliase map
* @return bool
*/
public function updateMap($id, $map)
{
if (empty($id) or !is_numeric($id)) {
throw new InvalidArgumentException("\$id have to be non zero integer");
}
if (empty($map)) {
throw new InvalidArgumentException("\$map have to be non empty string");
}
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_ALIAS'))->set(new Field('map'), $map)->where($qb->expr()->equal(new Field('id'), $id));
$this->query->exec($qb->getSQL());
}
示例6: updateGroup
public function updateGroup(TextsGroup $group)
{
if (empty($group->id)) {
throw new InvalidArgumentException("Group ID have to be specified");
}
if (!is_numeric($group->id)) {
throw new InvalidArgumentException("Group ID have to be integer");
}
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_TEXTS_GROUPS'))->set(new Field('name'), $group->name)->where($qb->expr()->equal(new Field('id'), $group->id));
$this->query->exec($qb->getSQL());
return $this->query->affected();
}
示例7: validate
/**
* Validate given code using paramsArray
* @param string $code
* @param array $paramsArray
* @return boolean
*/
public function validate($code, $paramsArray = array())
{
if (empty($code)) {
throw new InvalidArgumentException("Empty \$code supplied for validation!");
}
$qb = new QueryBuilder();
$orX = new Orx();
$orX->add($qb->expr()->isNull(new Field('valid_until')));
$orX->add($qb->expr()->greaterEqual(new Field('valid_until'), new Func('NOW')));
$qb->select(new Field('*'))->from(Tbl::get('TBL_ONE_TIME_CODES'))->where($qb->expr()->equal(new Field('code'), $code))->andWhere($orX);
$this->query->exec($qb->getSQL());
if ($this->query->countRecords() == 0) {
return false;
}
$dbRow = $this->query->fetchRecord();
$paramsArrayFromCode = $this->getArrayFromCode($dbRow['code']);
if ($paramsArrayFromCode === false) {
return false;
}
$resultingArray = array_diff_assoc($paramsArray, $paramsArrayFromCode);
if (count($resultingArray) != 0) {
return false;
}
if ($dbRow['multi'] == '1') {
if ($dbRow['usage_limit'] > 0) {
$qb = new QueryBuilder();
if ($dbRow['usage_count'] < $dbRow['usage_limit']) {
$qb->update(Tbl::get('TBL_ONE_TIME_CODES'))->set(new Field('usage_count'), $qb->expr()->sum(new Field('usage_count'), 1))->where($qb->expr()->equal(new Field('id'), $dbRow['id']));
$this->query->exec($qb->getSQL());
} else {
$qb->delete(Tbl::get('TBL_ONE_TIME_CODES'))->where($qb->expr()->equal(new Field("id"), $dbRow['id']));
$this->query->exec($qb->getSQL());
return false;
}
}
} else {
$qb = new QueryBuilder();
$qb->delete(Tbl::get('TBL_ONE_TIME_CODES'))->where($qb->expr()->equal(new Field("id"), $dbRow['id']));
$this->query->exec($qb->getSQL());
}
return true;
}
示例8: attempt
public static function attempt(array $credentials, $remember_me = false)
{
$input_email = filter_var($credentials['email'], FILTER_SANITIZE_STRING);
$input_password = filter_var($credentials['pass'], FILTER_SANITIZE_STRING);
//run validation
$v = new Validator($credentials);
$v->rule('email', 'email')->message('Please provide an valid Email address');
$v->rule('required', 'email')->message('Email is required');
$v->rule('required', 'pass')->message('Please provide an password');
if (!$v->validate()) {
return array('errors' => $v->errors());
}
//data valid so proceed to next
try {
$m = new \QueryBuilder();
$user = $m->select('users', array('email = :email', array('email' => array($input_email, \PDO::PARAM_STR))));
if (!$user) {
throw new \Exception('No user found with this credential', 5002);
}
$stored_password_hash = $user['password'];
if (password_verify($input_password, $stored_password_hash)) {
$_SESSION['auth.user.logged_in'] = true;
$_SESSION['auth.user.id'] = $user['id'];
if ($remember_me === true) {
$auth_config = load_config('auth');
//set token and it's validity period
$remember_token = uniqid('rem_');
$remember_validity = time() + $auth_config['login_cookie_expire'];
$m->update('users', array('remember_token' => array($remember_token, \PDO::PARAM_STR), 'token_validity' => array(date('Y-m-d H:i:s', $remember_validity), \PDO::PARAM_STR)), array('id = :id', array('id' => array(intval($user['id']), \PDO::PARAM_INT))));
setcookie($auth_config['login_cookie_name'], $remember_token, $remember_validity);
}
return true;
} else {
throw new \Exception('Invalid credential. Please provide valid username and password.', 5003);
}
} catch (\Exception $ex) {
throw $ex;
}
}
示例9: declinePhoto
public function declinePhoto(UserPhoto $photo)
{
if (empty($photo->id)) {
throw new InvalidArgumentException("UserPhoto object has no id!");
}
if (empty($photo->userId)) {
$photo = $this->getPhoto($photo->id);
}
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_USERS_PHOTOS'))->set(new Field('status'), static::MODERATION_STATUS_DECLINED)->set(new Field('modification_date'), new Func('NOW'))->where($qb->expr()->equal(new Field('id'), $photo->id));
$this->query->exec($qb->getSQL());
$this->correctDefaultPhoto($photo->userId);
}
示例10: save
public function save()
{
if (empty($this->modified_data) && !$this->new) {
return true;
}
if ($this->validate()) {
$data = array_intersect_key($this->data, array_flip(static::$fields));
if ($this->new) {
$sql = QueryBuilder::insert(get_called_class());
$sql->values($data);
} else {
$pk = static::$primary_key;
$data = array_intersect_key($data, array_flip($this->modified_data));
$sql = QueryBuilder::update(get_called_class());
$sql->set($data);
$sql->where(array($pk => $this->{$pk}));
}
if (method_exists($this, 'before_save')) {
if (!$this->before_save($sql)) {
$this->errors[] = "before_save failed";
return false;
}
}
if (!$sql->execute()) {
$this->error[] = "Save failed on SQL-Level!";
return false;
}
if (method_exists($this, 'after_create') && $this->new) {
$this->after_create();
} elseif (method_exists($this, 'after_update')) {
$this->after_update();
}
if (method_exists($this, 'after_save')) {
$this->after_save();
}
return true;
} else {
$this->errors[] = "validation failed";
return false;
}
}
示例11: lockJob
/**
* Lock job queue for working on current job
* Helper funcion
* @access private
* @param JobQueueObj $job
* @return TRUE|FALSE
*/
private function lockJob(JobQueueObj $job)
{
if (!is_numeric($job->id)) {
throw JobQueueException("Job id is not numeric!");
}
$qb = new QueryBuilder();
$qb->update(TBL::get('TBL_JOB_QUEUE'))->set(new Field('status'), self::JOB_STATUS_IN_PROCESS)->set(new Field('start_date'), new Func('NOW'))->where($qb->expr()->equal(new Field('id'), $job->id));
return $this->query->exec($qb->getSQL())->affected();
}
示例12: updateQueryString
private static function updateQueryString(array $pageInfo, $id)
{
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_PAGE_INFO', 'PageInfo'))->set(new Field('title'), $pageInfo['title'])->set(new Field('meta_keywords'), $pageInfo['keywords'])->set(new Field('meta_description'), $pageInfo['description'])->where($qb->expr()->equal(new Field('id'), $id));
return $qb->getSQL();
}
示例13: testUpdate
/**
* Generated from @assert update('user')->set(array('key1'=>'value1', 'key2'=>2))->where(array(array('id', 1), array('id', 1)))->text() [==] "UPDATE `user` SET `key1`=:Skey1, `key2`=:Skey2 WHERE `id` = 1 AND `id` = 1".
*
* @covers Kotchasan\Database\QueryBuilder::update
*/
public function testUpdate()
{
$this->assertEquals("UPDATE `user` SET `key1`=:Skey1, `key2`=:Skey2 WHERE `id` = 1 AND `id` = 1", $this->object->update('user')->set(array('key1' => 'value1', 'key2' => 2))->where(array(array('id', 1), array('id', 1)))->text());
}
示例14: changeConversationHasAttachmentStatus
public function changeConversationHasAttachmentStatus($uuid, $status, $userId = null)
{
if (empty($uuid) or !is_numeric($uuid)) {
throw new InvalidIntegerArgumentException("\$uuid have to be non zero integer.");
}
if (!is_numeric($status) or !in_array($status, $this->getConstsArray("STATUS_HAS_ATTACHMENT"))) {
throw new InvalidIntegerArgumentException("Invalid \$status specified");
}
if ($userId !== null and (empty($userId) or !is_numeric($userId))) {
throw new InvalidIntegerArgumentException("\$userId have to be non zero integer.");
}
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_CONVERSATIONS'))->set(new Field('has_attachment'), $status)->where($qb->expr()->equal(new Field('uuid'), $uuid));
if ($userId !== null and !empty($userId) and is_numeric($userId)) {
$qb->andWhere($qb->expr()->equal(new Field('user_id'), $userId));
}
$this->query->exec($qb->getSQL());
$hookParams = array('type' => 'hasAttach', 'uuid' => $uuid, 'hasAttach' => $status);
HookManager::callHook("ConversationUpdate", $hookParams);
}
示例15: setHostsDefaultLanguage
public static function setHostsDefaultLanguage(Host $host, Language $language)
{
$sql = MySqlDbManager::getQueryObject();
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_HOST_LANGUAGE'))->set(new Field("default"), 0)->where($qb->expr()->equal(new Field('host_id'), $host->id));
$sql->exec($qb->getSQL());
$qb = new QueryBuilder();
$qb->update(Tbl::get('TBL_HOST_LANGUAGE'))->set(new Field("default"), 1)->where($qb->expr()->equal(new Field('host_id'), $host->id))->andWhere($qb->expr()->equal(new Field('lang_id'), $language->id));
$sql->exec($qb->getSQL());
}