Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Doctrine. Transakcje w zapisie danych
blackroger
post
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

Ostrzeżenie: (0%)
-----


Mam problem odnośnie transakcji. Jak zrobić aby poniższy kod wykonał się w całości i jeżeli ktoś inny w czasie wykonywania kodu będzie również próbował zmienic coś w obiektach to mu to uniemożliwić ew. wyświetlić mu komunikat o zachodzących zmianach?

  1. if(!empty($uppmenu_objs))
  2. {
  3. foreach($uppmenu_objs as $record_obj)
  4. {
  5. foreach($submenu_objs as $record_obj2)
  6. {
  7. $relation_obj = Doctrine_Query::create()
  8. ->from('CmsMenuRelation cmr')
  9. ->where('cmr.f_cms_menu = ?', $record_obj->t_id)
  10. ->addWhere('cmr.f_cms_menu2 = ?', $record_obj2->t_id)
  11. ->execute();
  12.  
  13. $depth = $relation_obj[0]->t_depth;
  14. $relation_obj[0]->set('t_depth', $depth - 1);
  15. $relation_obj[0]->save();
  16. }
  17.  
  18. }
  19. }
  20.  


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Czyli Tobie chodzi o blokowanie tabeli a nie o transakcje.

Zastanów się czy na pewno nie ma możliwości załatwienia tego zapytaniem update bez pobierania w pętli.
Co do zapytań w pętli to zauważ, że za każdym razem Twoje zapytanie musi być parsowane. Lepiej chyba będzie zapytanie tworzyć poza pętlą, a wykonywać tylko w zapytaniach.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 07:42