Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Błąd zapytań w tym samym czasie
shycat
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 25.02.2008

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


Witam, mam takie dwie tabele w bazie danych:


tabela "dane"
ilsoc_userow int
...

tabela "uzytkownicy"
id_usera int (PRIMARY KEY)
....


Podczas zakladania nowego konta (wpis przez INSERT) calosc dziala w ten sposob:

pobierz ilosc userow -> $ilosc=ilosc_userow+1 -> zapisz ilosc userow w "dane" -> utworz przez INSERT wpis w "uzytkownicy" gdzie "id_usera"=$ilosc


no i wszystko byloby cacy, gdyby nie to, ze jezeli 2-ch uzytkownikow zalozy konto w tej samej sekundzie to jeden wpis robi sie poprawnie, a drugi jest pusty (wpis bez zadnych danych)


Jak mozna temu zaradzic?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
shycat
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 25.02.2008

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


hmm... pewnie masz racje wprowadze ta zmiane, do tej pory uzywalem zapisu ilosc w innej tabeli, poniewaz po 1. liczba uzytkownikow jest podana na dole strony i myslalem, ze uzywanie SELECT COUNT bedzie bardziej obciazalo baze niz pobranie "gotowej" wartosci a po 2. wpis w innej tabeli eliminowalby rowniez uzywanie SELECT COUNT podczas rejestracji...

Zastanawia mnie czy COUNT jest "lekkie" czy przy duzej ilosci rekodrow moze zamulic. Sam myslalem nad rozwiazaniem:

<zablokuj tymczasowo baze>
wykonaj instrukcje
<odblokuj baze>

ale nie wiem czy istnieje taka mozliwosc oraz czy jest skuteczna (co z uzytkownikiem/uzytkownikami, ktory w tym czasie jest blokowany - tj. rowniez zaklada konto)

inny sposob, aczkolwiek nie wiem czy mozliwy, to cos w rodzaju:

  1. INSERT INTO tabela (COUNT(id)++,'dane1','dane2')



Inna sprawa jest czy jezeli uzyje metody pobierania przez COUNT - czy to bez blokowania bazy wystarczy



Ps. jezeli chodzi o usuwanie uzytkownikow i o rzeczy o ktorej piszesz to mam tego swiatomosc i po prostu nie usuwam wpisow tylko mam kolumne "typ" z danymi 1|2|3 dla konto aktywne|konto nieaktywne|konto usuniete

Ten post edytował shycat 7.09.2011, 17:29:22
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: 25.08.2025 - 02:37