Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Blokowanie tabeli
wijet
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 20.12.2005
Skąd: Łódź

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


Mam tabele na której intensywnie wykonywane są INSERTY, SELECT raz na tydzień do generowania raportów.
Istnieje możliwość że dwaj użytkownicy będa chcieli wstawić w tym samym czasie wiersz do tabeli.

Mam własną klase obsługi bazy, moje pytanie jest nastepujace czy wystarczy

  1. <?php
  2.  
  3. function Query($SqlQuery)
  4. {
  5.   if(ereg('INSERT',$SqlQuery))
  6.    {
  7.        //kod zablokowania tabeli do zapisu odczyt dozwolony
  8.    }
  9.    //dalszy kod tej metody
  10.  
  11. //odblokowanie tabeli
  12. }
  13.  
  14. ?>


Aby zabezpieczyc sie przed taka sytuacją na 100%? a tabela MyISAM

Ten post edytował wijet 3.02.2006, 12:18:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kinool
post
Post #2





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


jezeli dwuch userow wstawia cos do tej samej tabeli (zakladam ze kozystasz z pola auto_increment) wiec ktorez z nich zawsze trafi jako pierwsze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wiec ni musisz sie tym przejmowac, inaczej jesli klucz glowny sam przydzielasz za pomoca jakiegos schematu, wtedy mzoe sie zdazyc ze dwie osoby dostana ten sam identyfikator wiec ta ktorej zapytanie bedzie pierwsz wykona sie poprawnie a tej innej osoby wygeneruje blad

Cytat
A tak dla mojej wiedzy w przypadku UPDATEów wystarczy blokować tabele do zapisu a można zostawić odczyt?


skoro jedna osoba bedzie mogla (miala prawa) do zrobienia UPDATE to czemu inna nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jest to sztandarowy przyklad problemu rezerwacji biletow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dwie osoby cha zamowic bilet, zadaja zapytanie do boazy czy sa wolne mijsca, jest wolne wiec jedna i druga osoba rezerwuja miejsce (nie swiadome swojego istnienia:)) gosc, ktory pierwszy wysle formulaz dostanie bilet a gosc numer 2 wyplni frmulaz, kasa zostanie mu scagnieta z konta a biletu nie dostanie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) i dlatego nalezy sie martwic UPDATE (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 4.10.2025 - 16:53