Skocz do zawartości


[MySQL] Transakcje i ich obsługa w PHP


4 odpowiedzi w tym temacie

#1 dj.drezyna

    Pomocna dłoń

  • Super użytkownicy
  • 154 Postów:

Napisano wto, 13 gru 2011 - 18:16

W jaki sposób obsługiwać transakcje w PHP i MySQL (v. 5.1.x)
Czy są jakieś specjalne instrukcje w tym języku? Bo chciałem sobie zrobić takie transakcje w PhpMyAdmin i ustwiając autocommit na 0 PHPadmin i tak wykonywał wszystkie polecenia nie czekając na polecenie commit. Jak to by było trzeba rozwiązać?
Mam nadzieję, że jedynym sposobem nie jest chyba zebranie wszystkich instrukcji jako jedno mysql_query.
Mam zatem pytanie czy opisywane na końcu poprzedniego akapitu jest jedynym?

dzięki z góry za info,
pozdr

#2 sazian

    Guru

  • Moderatorzy
  • 1117 Postów:

Napisano wto, 13 gru 2011 - 20:16

w pma chyba nie da się tego zrobić jakoś ładnie graficznie
jedyne co mi przychodzi do głowy to
np.

START TRANSACTION;
UPDATE tabela SET kolumna=NOW();
SELECT * FROM tabela;
ROLLBACK

ewentualnie możesz skorzystać z mysql administratora http://dev.mysql.com...-tools/5.0.html
w tym programie po przejściu do widoku rozszerzonego (View -> Expanded query area - u mnie dwa rzazy F11) pojawią się przyciski do obsługi transakcji

pamiętaj że transakcje są dostępne tylko w silniku MyISAM

#3 dj.drezyna

    Pomocna dłoń

  • Super użytkownicy
  • 154 Postów:

Napisano wto, 13 gru 2011 - 20:30

Pędzę z wyjaśnieniem. To czy PHPMyAdmin sobie radzi z transakcjami nie jest mi za bardzo potrzebne natomiast chodzi raczej o to żeby wiedzieć jak obsługuje się transakcje w kodzie php z funkcją mysql_query() w roli głównej :)
A w PMA to chyba niewykonalne jest bo oddzielać średnikami to tylko ładnie podaje że nie zwrócono żadnego rekordu (pusto) i tyle ale jak się rozpocznie transakcję to w późniejszym wykonaniu kolejnego zapytania i tak nie można jej kontynuować tylko rozpoczyna się jakby od początku.

#4 sazian

    Guru

  • Moderatorzy
  • 1117 Postów:

Napisano wto, 13 gru 2011 - 22:59

jest coś takiego w mysqli
http://php.net/manua....autocommit.php
zwykłe funkcje mysql chyba nie mają takiego bajeru

#5 munky

    Nowy na forum

  • Użytkownicy
  • 4 Postów:

Napisano sob, 25 sie 2012 - 11:45

Co to znaczy, że w PMA można robić transakcje ? przeciesz to jest klient bazy a transakcja to integralna cześć DB. W PMA czy innym kliencie możesz pisać procedury i funkcje, które mają transakcje. Wbudowaną osbługę tranaskacji ma np biblioteka MDB2