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
+
0
-

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
+
0
-

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
+
0
-

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)

konva
Člen | 88
+
0
-

No já články nemažu, ale zneplatňuju, takže by se v zásadě nic nestalo, ale chápu připomínku a ještě to promyslím.
Díky
Lukáš