Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Wprowadzanie danych do Mysql
newmala
post 20.09.2012, 09:11:51
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.01.2012

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


Zastanawiam się jak poprawnie powinno być skonstruowany cały proces zapisu danych do bazy?

Mam już pewne dane w bazie odnośnie klientów : nazwisko, imie, pesel, itp.
Jak się zabezpieczyć przed tym, aby powtórnie nie wprowadzić tego samego klienta do bazy?
Czy wystarczy sprawdzać w bazie czy już taki klient istnieje, np. po peselu?
Czy robi się jakies ograniczenia na tabeli, procedurki, indexy?




Go to the top of the page
+Quote Post
Wilwarin
post 20.09.2012, 09:17:36
Post #2





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

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


najlepiej jakbyś zrobił osobny plik.php do którego przesyłasz dane z formularza poprzez POST a on po sprawdzeniu czy taki pesel już istnieje i po dodaniu go do bazy przekierowywuje spowrotem na stronę.
Go to the top of the page
+Quote Post
viking
post 20.09.2012, 09:18:15
Post #3





Grupa: Zarejestrowani
Postów: 6 366
Pomógł: 1115
Dołączył: 30.08.2006

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


unique index na peselu, przy próbie insertu baza powinna zwrócić wyjątek który przechwytujesz.


--------------------
Go to the top of the page
+Quote Post
Wilwarin
post 20.09.2012, 09:25:49
Post #4





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

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


index jest pewnie lepszym rozwiązaniem ale ja bym to zrobił w ten sposób (nie znam się na indexach sad.gif )
  1. $peselcheck = mysql_query("SELECT pesel FROM tabela WHERE pesel=".$pesel);
  2. $num_rows = mysql_num_rows($peselcheck);
  3. if($num_rows < 1){
  4. mysql_query("INSERT INTO...
  5. }


Ten post edytował Wilwarin 20.09.2012, 09:28:19
Go to the top of the page
+Quote Post
mmmmmmm
post 20.09.2012, 10:49:48
Post #5





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Użyj REPLACE zamiast INSERT
Go to the top of the page
+Quote Post
vermis
post 20.09.2012, 12:20:13
Post #6





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


Cytat(mmmmmmm @ 20.09.2012, 11:49:48 ) *
Użyj REPLACE zamiast INSERT

To nie jest dobre rozwiązanie, bo sprawdza unikatowość primary key a pesel nie koniecznie musi nim być. Poza tym możesz nadpisać rekordy wstawiając losowe numery pesel, co nie jest raczej wskazane, bo znając twój pesel mógłbym ci zmienić np. nazwisko.
Rozwiązanie z indeksem jest lepsze. Chociaż najlepiej chyba sprawdzić czy wpis istnieje, a indeks jako dodatkowe zabezpieczenie. Tak czy inaczej indeks powinien być bo pesel nie ma prawa się powtórzyć (w teorii przynajmniej smile.gif


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.06.2024 - 11:27