Oznámení
Omlouváme se, provoz fóra byl ukončen
Problem s vykonanim transakce
Upozornění: Tohle vlákno je hodně staré.
před 9 lety
- kenod
- Člen | 3
Zdravim,
mam zhruba takovyto kod:
<?php
dibi::begin('updateusers');
foreach ($users as $n => $row) {
$prirustek = $row['hero_charisma'];
$novy_stav = $row['points'] + $prirustek;
if ($novy_stav != $row['points']) dibi::query('UPDATE users SET points = %i', $novy_stav, ', consumption_residents = %s', $novy_stav.'-'.(4*$novy_stav),' WHERE id=%i LIMIT 1', $row['id']);
}
dibi::commit('updateusers');
?>
V logu potom vidim provedeni jednotlivych updates, ale v databazi se nic nezmeni. Pokud transakce vyhodim, tak vse jede jak ma. Nevite kde muze byt zakopany pes?
Pripadne budu rad za tipy jak jinak vyresit rychly update 10 000 uzivatelu v co nejkratsim case.
před 9 lety
- David Grudl
- Nette Core | 6806
Podporuje databáze a používáš správně savepointy? Tj. ty parametry u metod begin() a commit(). Pokud nechceš používat savepointy, parametry odstraň.