![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 27.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
1. Jeżeli używam transakcji PDO, to w którym momencie powinienem wywołać closeCursor()? W tym przykładzie nie ma w ogóle wywołania closeCursor():
http://thisinterestsme.com/php-pdo-transaction-example/ więc może w przypadku transakcji nie trzeba w ogóle wywoływać closeCursor()? 2. Modyfikując przykład stąd: http://thisinterestsme.com/php-pdo-transaction-example/ Jeżeli zapytań nie umieszczę "bezpośrednio" pomiędzy funkcjami beginTransaction() i commit(), tylko opakuje je w swoje funkcje (a same zapytania będę właśnie w tych funkcjach), to czy transakcje będę działa poprawnie?
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
1. A będziesz obejmował transakcją SELECT? Po co Ci w takim razie closeCursor?
2. Tak, jeśli funkcje będą mieć dostęp do tego samego obiektu pod zmienną $pdo. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 27.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
1. Tak - będzie jeden select i dwa inserty.
2. To będzie wyglądało tak, że będę miał klasę, a kod zapytań będzie umieszczony w metodach tej klasy. Zmienna $pdo będzie składnikiem klasy, więc będzie też znana we wszystkich jej metodach. W takiej sytuacji nie będzie chyba problemu? Ten post edytował Userr 15.03.2017, 12:13:33 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Po co obejmujesz SELECT transakcją?
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 7 Dołączył: 27.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
@truebule a dlaczego SELECT ma nie być w transakcji?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
javafxdev,
chce się dowiedzieć jaki to SELECT (czego dotyczy). Nie neguję jego obecności. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 27.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
Będę miał SELECT ponieważ zanim dodam ocenę do bazy chcę sprawdzić czy taki uczeń już istnieje, więc będzie to coś w stylu:
i jeżeli to zapytanie zwróci zero wierszy (nie ma jeszcze takiego ucznia w tabeli) to dodam za pomocą INSERT nowy wiersz (w którym będą dane o tym uczniu) do tabeli uczniowie i dopiero następnie też za pomocą INSERT dodam nowy wiersz z oceną do tabeli oceny. Jeżeli taki uczeń już istnieje, to dodam tylko ocenę do tabeli oceny. Ten post edytował Userr 17.03.2017, 10:43:53 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
W większości baz jest albo domyślnie, albo można dopisać prosty kod - un duplicate key update więc select jest zbędny.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 08:59 |