Dotazky k dibi databázi zápis a update increment

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

chci se zeptat

Co znamená resp jakej je rozdíl mezi dotazem
return $this->db->select(‚*‘)->from($this->table);
a pak jsem našel na netu něco jako:
dibi::query(‚
SELECT * FROM [table]
WHERE id = %i AND added > %d‘, $id, $time
);

A pak v nette database kdyz jsem mel tabulky spojene pres cizí klíč
Tak jsem si předal select z jedny tabulky.
a v latte jsem k ty druhy spojeny pres ciczi klic pristoupil
$select->druhatabulka->sloupec
da se to nejak udelat i v Dibi?
Díky

Editoval Domki (5. 6. 2014 10:25)

Pavel Macháň
Člen | 282
+
0
-

Domki napsal(a):

chci se zeptat

1. Co znamená resp jakej je rozdíl mezi dotazem.
return $this->db->select(‚*‘)->from($this->table);
a pak jsem našel na netu něco jako:
dibi::query(‚
SELECT * FROM [table]
WHERE id = %i AND added > %d‘, $id, $time
);

2. A pak v nette database kdyz jsem mel tabulky spojene pres cizí klíč
Tak jsem si předal select z jedny tabulky.
a v latte jsem k ty druhy spojeny pres ciczi klic pristoupil
$select->druhatabulka->sloupec
da se to nejak udelat i v Dibi?
Díky

  1. To první je fluent zápis a to druhé klasické query (staticky nepoužívat)
  2. Dibi neumí … lze toho docílit třeba pomocí LeanMapper ORM, který je postaven právě nad dibi, ale už je to prostě ORM

Editoval EIFEL (5. 6. 2014 11:35)

Domki
Člen | 310
+
0
-

1: Jaký se nemá používát?
Mě totiž u toho klasickýho zápisu to psalo neco ze nemá připojení, a u toho fluent to šlo

2. Takže to pak musím udělat v dibi přes Join?

Díky

Pavel Macháň
Člen | 282
+
0
-

Domki napsal(a):

1: Jaký se nemá používát?
Mě totiž u toho klasickýho zápisu to psalo neco ze nemá připojení, a u toho fluent to šlo

2. Takže to pak musím udělat v dibi přes Join?

Díky

1. V nette dibi používej jako službu, takže třeba v modelu budeš s Db pracovat takto:

class Articles
{
    /** @var \DibiConnection */
    private $db;

    public function __construct(\DibiConnection $connection) {
        $this->db = $connection;
    }

    public function getById($id) {
        $this->db->query('SELECT ......');
        // .... nebo fluentem
        $this->db->select('*')->from('....');
    }
}

2. Ano pomocí join