Autor Zpráva
maarlin
Profil
Řeším takový zajímavý problém.
Mám data (XML), která obsahují informace o kategoriích, tyto kategorie chci importovat do databáze. Kategorie mají několik úrovní, proto jsem zvolil traverzování kolem stromu. Abych zamezil existenci "nepřepočítaných" záznamů při vkládání, provádím INSERT a UPDATE v jedné transakci.
Konkrétně takto:
dibi::begin();
dibi::query('INSERT INTO [categories] ', $data);
dibi::query('UPDATE [categories] SET [left]=[left]+2, [right]=[right]+2'.
    ' WHERE [left] > %i', 3);
dibi::commit();

$categoryId = dibi::insertId();


Snad to je pochopitelné i pro ne-dibisty, případně vysvětlím.
Problém je pochopitelně v tom, že po transakci se nedokážu doptat na last inserted id, čili nemůžu začít vkládat další kategorie podle parent_id.
t4nn3r
Profil
nevrací dibi při insertu hodnotu auto_increment na primarnim indexu ? (...objektový model co používám ho vrací)

zkus toto:
$lastid = dibi::query('INSERT INTO [categories] ', $data);
echo $lastid
oggy
Profil *
vrací např dibi::insert(.....)->execute(dibi::IDENTIFIER);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: