![]() |
![]() ![]() |
![]() |
--ANdy-- |
![]()
Post
#1
|
Goście ![]() |
Witam
Zaczynam dopiero zabawe z PHP / MySQL i chcialbym zapytac, czy majac prosty formularz w php, ktory bezposrednio zapisuje dane z formularza do jednej tabeli (MySQL) i w jednym momencie kilku/wielu uzytkownikow wciskajacych 'Submit', moge oczekiwac ze tabela bedzie edytowana przez jeden z wpisow i pozostale zakoncza sie bledem? Jak dziala MySQl w takich sytuacjach? Czy sa jakies sposoby na unikniecie przypadku blokowania tabeli gdy w jednej chwili wykonywanych jest wiele instrukcji INSERT? Z gory dziekuje Andy |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
o rozwiązywanie konfliktów martwi sie serwer bazy danych, w tabelach isam i innodb bez trazakcji obowiązuje zasada - kto pierwszy ten lepszy - jeżeli dane kolejnych wpsiów są poprawne - zostaną wszystkie obsłużone - jeżeli dane się powielą (przy update) - ostani wpis nadpisze poprzednie - jeżeli założone są restrykcje na klucze / indexy (przy insert) zapytania "spóźnione" po prostu się nie wykonają i zwrócą błąd w rodzaju "duplicated unique key / index entry..." w przypadku używania trazakcji jest to wszystko nieco bardziej skomplikowane, ale myślę, że na tym etapie nie jest ci to potrzebne...
jeżeli będziesz przestrzegał dwóch podstawowych zasad: 1. klucze podstawowe tabel typu autoinctrement, przy insert zamiast wartości tego pola podajemy null, przy update pomijamy to pole 2. sprawdzanie rezultatów każdego zapytania do bazy - czy powiodło się, czy zmiodyfikowało / dopisało jakieś rekordy to o resztę nie musisz się martwić -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:09 |