Zvlastny problem pri query() – vykona sa dvakrat

- cuchi
 - Člen | 17
 
Nette 2.04
PHP 5.3
Mojim problemom je, ze mi query uvedenu nizsie vykona celkom dvakrat.
Statement je v poriadku, skusal som ho manualne pustat v yogu.
Dovod pre ktory som sa rozhodol pouzit prave query() je rychlost, pretoze dany
dotaz sa bude vykonavat periodicky nad tabulkou s 10.000+ zaznamamy a
30 stlpcami. Ak existuje nejaka moznost update-u pomocou Nette/Database
v zmysle „cistejsieho“ kodu bol by som rad ak by ste sa so mnou
podelili.
$this->_model->database->query("UPDATE `pokus` SET d = c, c = b, b = a, a = 0");
Povodna tabulka:
id	a	b	c	d
---------------------------------
1	1	2	3	4
Ocakavany vysledok
id	a	b	c	d
---------------------------------
1	0	1	2	3
Vysledok v praxi
id	a	b	c	d
---------------------------------
1	0	0	1	2
Napadlo mi samozrejme aj nieco ako:
$rows = $this->_model->getTable();
foreach($rows as $row) {
	$row->d = $row->c
	...
	$row->update();
}
Samozrejme degradacia v rychlosti je velmi citelna.
Chcel som urobit aj nieco ako:
$this->_model->getTable()->update(array(
	'd' => 'c'
	...
));
Ale toto nefungovalo vobec.
Existuje samozrejme moznost ulozenia si celej tabulky do php pola. V poli vykonat co treba a potom updatnut ale pride mi to ako posledna moznost a chcel by som prioritne vsetko nechat na databazu.
Editoval cuchi (13. 10. 2012 10:59)

- cuchi
 - Člen | 17
 
Dakujem za pripomenutie procedur, problem vsak zostava kedze aj tak musim
proceduru volat cez query().
Urobil som si maly pokus do query() hodil obycajny insert – vykonal sa
dvakrat. Skusil som to aj s insert() a vysledok je rovnaky. Mne len pride
zvlastne ze ked si program napisem napr takto:
vypisem si tabulku pred update – podla ocakavania
vykonam UPDATE
vypisem si tabulku po update – podla ocakavania
exit;
skontrolujem rucne tabulku v db – query bola vykonana dvakrat

- cuchi
 - Člen | 17
 
Skusil som mozillu (predtym to bol Chrome) a funguje to normalne. To by ma v zivote nenapadlo. Script bude aj tak spustany demonom ale potreboval som to debugovat.
Dakujem za pomoc.
Skusil som incognito mode a funguje to aj v chrome, teda predpokladam ze budto cache alebo nejaky plugin je na vine.