Subselect v Insert prikazu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- konva
- Člen | 88
Ahoj,
chtěl bych vložit do databáze záznam který obsahuje data ze subselectu.
Zkusil jsem toto
<?php
$this->db->table('diskusePolozka')->insert(array(
'clanekId' => $this->db->table('clanek')->select('id')->where('klic', $this->klic),
'uzivatelId' => 1,
'text' => $vals->text,
'datumVlozeno' => new \DateTime,
));
?>
Ale dotaz pak vypadá takto
<?php
INSERT INTO `diskusePolozka` (`clanekId`, `uzivatelId`, `text`, `datumVlozeno`)
VALUES ((`238735` = 238735), 1, 'bb', '2014-01-23 11:06:59')
?>
Já ale potřebuji tu první hodnotu jen jako číslo „238735“ a ne
„(238735
= 238735)“.
Poradíte někdo.
Díky
Lukáš
- konva
- Člen | 88
Už jsem na to přišel, tak pokud by to někoho zajímalo řešení je „fetch()“ které jsem zapomněl
<?php
$this->db->table('diskusePolozka')->insert(array(
'clanekId' => $this->db->table('clanek')->select('id')->where('klic', $this->klic)->fetch(),
'uzivatelId' => 1,
'text' => $vals->text,
'datumVlozeno' => new \DateTime
));
?>
- Pavel Macháň
- Člen | 282
konva napsal(a):
Už jsem na to přišel, tak pokud by to někoho zajímalo řešení je „fetch()“ které jsem zapomněl
<?php $this->db->table('diskusePolozka')->insert(array( 'clanekId' => $this->db->table('clanek')->select('id')->where('klic', $this->klic)->fetch(), 'uzivatelId' => 1, 'text' => $vals->text, 'datumVlozeno' => new \DateTime )); ?>
Přímo do insertu bych select nedával. Co když se stane, že článek
smažeš, ale někdo už měl rozepsaný komentář a odešle ho
k neexistujícímu článku?
Bejt tebou tak to rozložím a ošetřím.
Editoval EIFEL (23. 1. 2014 11:40)