Insert hodnoty vypočtené funkcí
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- 2bfree
- Člen | 248
Ahoj,
poradili byste, jak se dá v \Nette\Database napsat insert, který vloží hodnotu výsledku SQL funkce?
Chtěl bych query
INSERT INTO `user_credentials` (`user_id`, `salt`, `password`)
VALUES (1, 'salt', SHA2(CONCAT('salt','heslo'), 512)
Došel jsem ke kódu jak bych to očekával, ale tak to není
$this->getDatabase()->table('user_credentials')->insert(array(
'user_id' => 1,
'salt' => 'salt',
'password' => array('SHA2(CONCAT(?, ?), 512)', 'salt', 'heslo'),
));
Editoval 2bfree (20. 2. 2014 0:04)
- Pavel Macháň
- Člen | 282
2bfree napsal(a):
Ahoj,
poradili byste, jak se dá v \Nette\Database napsat insert, který vloží hodnotu výsledku SQL funkce?
Chtěl bych query
INSERT INTO `user_credentials` (`user_id`, `salt`, `password`) VALUES (1, 'salt', SHA2(CONCAT('salt','heslo'), 512)
Došel jsem ke kódu jak bych to očekával, ale tak to není
$this->getDatabase()->table('user_credentials')->insert(array( 'user_id' => 1, 'salt' => 'salt', 'password' => array('SHA2(CONCAT(?, ?), 512)', 'salt', 'heslo'), ));
Jakou chybu ti to vyhazuje?
- David Matějka
- Moderator | 6445
verze nette? v 2.1 asi takhle:
$context = $this->getDatabase();
$context->table('user_credentials')->insert(array(
'user_id' => 1,
'salt' => 'salt',
'password' => $context::literal('SHA2(CONCAT(?, ?), 512)', 'salt', 'heslo'),
));