24. 12. 2012. | #1 |
novi član
Na probnom radu
Datum učlanjenja: 17.05.2012
Poruke: 18
Hvala: 4
0 "Hvala" u 0 poruka
|
Problem sa duplim unosom u bazi
Desava se sledeci problem:
Imam formu u kojoj korisnik kada je popuni, salje podatke u bazu. E sad, kontroler pokupi podatke , obradi, pogleda da li su validni i dali je vec unesen podatak u bazu. Ako je sve ok, php salje do modela i vrsi se upis u bazu. Pa ipak se desi , vrlo retko da se nadje dupliran upis u bazu, a vreme pokazuje istu sekundu unosa... Pomislio sam da je rec o sledecem: Ako korisnik dva puta klikne na formu, istovremeno salju se 2 zahteva ka kontroleru. Ako se desi (imam par konekcija ka bazi), da prvi zahtev nesto kasni pri upisu, a drugi prodje validaciju onda ce se uneti duplo, jer provera da li nesto postoji vec u bazi ne radi. Cak ako stavim ovu proveru u modelu pre samog unosa, opet moze da se desi da prvi upit se sa zakasnjenjem izvrsava a drugi je uspesno na brzinu prosao sve validacije i opet je spreman za unos... Ovo mi deluje kao logicno objasnjenje ali opet ne znaci da je u ovome problem... Da li je imao neko slican problem? Ili neki savet kako ovo resiti? |
25. 12. 2012. | #3 |
Pukovnik u penziji
Grand Master
|
- Generiši neki token i preko njega prati da li je urađen dupli submit...
- Disejbluj submit kao što reče kolega - dodaj unique index na bazi za polja koja kontrolišeš tako da ne moraš ni provjeravati da li već postoji... Onda možeš preko INSERT IGNORE raditi upis... |
|
|