tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Duplicitni query ve fetchPairs

před 8 lety

tomdawayhet
Člen | 20

Zdravim vsetkych

V Nette frameworku volam jednoduchy query (fetchPairs)
a ukladam ho do premennej cez $this->pole = dibi::fetchPairs(…)

Ked som si zapol logger tak sa tento query stale vykona 2 krat … Vie mi niekto pomoc.

Vdaka za rady

před 8 lety

Milo
Nette Core | 1119

A logger sis zapnul jak? Ohaduji, že $this->pole = dibi::fetchPairs(…) spouštíš dvakrát.

před 8 lety

tomdawayhet
Člen | 20

Milo napsal(a):

A logger sis zapnul jak? Ohaduji, že $this->pole = dibi::fetchPairs(…) spouštíš dvakrát.

V BasePresenteri mam toto:

dibi::connect(NEnvironment::getConfig(‚database‘));

dibi::getProfiler()->setFile(WWW_DIR . ‚/log/log.sql‘);

dibi::getSubstitutes()->prefix = NEnvironment::getConfig(‚database‘)->prefix;

$this->tables = NEnvironment::getConfig(‚table‘);

$this->config = dibi::fetchPairs(‚SELECT [key], [value] FROM [config]‘);

A ked si pozriem log tak stale sa query vykona 2 krat…

Vdaka

před 8 lety

David Grudl
Nette Core | 6806

V nejnovější verzi dibi vypisuje profiler i řádky, na kterých bylo query voláno, třeba to pomůže.

před 8 lety

Milo
Nette Core | 1119

Zkus:

dibi::fetchPirs('SELECT 0, 1');
$this->config = dibi::fetchPairs('SELECT [key], [value] FROM [config]');

/*
Podle logu:
    Chyba dibi
        SELECT 0, 1;
        SELECT 0, 1;
        SELECT key, value FROM config;
        SELECT key, value FROM config;

    Tvuj kod se spousti 2x
        SELECT 0, 1;
        SELECT key, value FROM config;
        SELECT 0, 1;
        SELECT key, value FROM config;
*/

před 8 lety

tomdawayhet
Člen | 20

David Grudl napsal(a):

V nejnovější verzi dibi vypisuje profiler i řádky, na kterých bylo query voláno, třeba to pomůže.

Zdravim

Je to len tym ze najprv sa do logu zapise vygenerovana query a potom sa spusta alebo sa mylim ?

Vystup z logu profilera:

OK: SELECT config_key, config_value FROM swapp_cms_configuration;
– rows: 4
– takes: 0.286 ms
– driver: mysql/0
– 2011–02–18 23:32:53

OK: SELECT * FROM swapp_cms_languages;
– rows: 9
– takes: 0.506 ms
– driver: mysql/0
– 2011–02–18 23:32:53

OK: SELECT config_key, config_value FROM swapp_cms_configuration;
– rows: 4
– takes: 0.193 ms
– driver: mysql/0
– 2011–02–18 23:32:53

OK: SELECT * FROM swapp_cms_languages;
– rows: 9
– takes: 0.144 ms
– driver: mysql/0
– 2011–02–18 23:32:53

BasePresenter.php

abstract class BasePresenter extends NPresenter
{
protected $tables;
protected $config;

public function startup()
{

parent::startup();

dibi::connect(NEnvironment::getConfig(„database“));
dibi::getProfiler()->setFile(WWW_DIR . „/log/log.sql“);
dibi::getSubstitutes()->prefix = NEnvironment::getConfig(‚database‘)->prefix;

$this->tables = NEnvironment::getConfig(„table“);

$this->config = dibi::fetchPairs(„
SELECT [config_key], [config_value]
FROM [:prefix:“ . $this->tables[„configuration“] . „]“);

$this->langs = dibi::fetchAll(„
SELECT *
FROM [:prefix:“ . $this->tables[„languages“] . „]“);

}

}

Dakujem za odpoved :)