Update DB – nevypisování každého dotazu zvlášť

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
sd
Člen | 87
+
0
-

Zdravím,

mám formulář na úpravu článku, do kterého se mi vypíše z databáze název, obsah, klíčová slova atd…
Když chci formulář uložit a změny ze všech polí zapsat do databáze najednou, tak abych nepsal:

public function UpdateArticleFormSucceeded($form){
            $values = $form->getValues();
            $postId = $this->getParameter('postId');

            $this->database->query('UPDATE posts SET title=? where id=?', $values->title, $postId);
			$this->database->query('UPDATE posts SET content=? where id=?', $values->content, $postId);
			$this->database->query('UPDATE posts SET keywords=? where id=?', $values->keywords, $postId);
}

Viděl jsem v QuickStartu toto: (ale nefungovalo mi to – chybu nevypsal a ani se nic nestalo)

$posts = $this->database->table('posts')->get($postId);
$posts->update($values);

Je nějaké řešení? Děkuji, sd

Editoval sd (23. 9. 2014 16:27)

Michal Vyšinský
Člen | 608
+
+1
-

Ahoj,

$this->database->query('UPDATE posts SET ? WHERE id = ?', $values, $postId)
Caine
Člen | 216
+
+3
-
$this->database->table('posts')->wherePrimary($postId)->update($values);

Editoval Caine (23. 9. 2014 16:43)

sd
Člen | 87
+
0
-

Děkuji, funguje ;)