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
blackroger
post
Post #2





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

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


nie do konca o taki update mi chodziło. Dam przykład dla inserta:

  1. INSERT INTO `cms_menu_relation` (`f_cms_menu`, `f_cms_menu2`,`t_depth`)
  2. SELECT `f_cms_menu`, 32, `t_depth` + 1 FROM `cms_menu_relation` WHERE
  3. `f_cms_menu2` = 31;
  4.  


załatwiam tym insertem około 30 wpisów za jednym razem. Tą konstrukcję co podałeś to wiem że działa z selectem bo to jest podzapytanie. Moim problemem jest to że nie mogę za bardzo korzystać z jednego takiego zapytania nawet jakby udało się sformułować konstrukcję podobną do tej z insertem bo zależałaby ona od kupy rzeczy które zależałby od siebie nawzajem. Można rozwiązać problem, koncepcją którą po części podsunął mi destroyerr, tworząc większą sieć relacji na obiektach wyłączając wtedy środkowe zapytanie.
Innym rozwiązaniem może być użycie jakiejś procedury składowej w sql, ale chciałem tych rzeczy uniknąć.

Ale pytam dalej ...jak wygląda sprawa z tym blokowaniem tabeli w symfony?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 17:16