Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 21.03.2017 Ostrzeżenie: (0%)
|
Tak jak w temacie, chcę dodać do bazy rekord, jeżeli ten nie istnieje, a jeżeli istnieje zwrócić false, próbowałem już setki rozwiązań z stackoverflow i za każdym razem wywala błąd
albo to:
Ten post edytował Dukov 4.11.2018, 13:52:42 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%)
|
Wytłumaczę ci najprościej jak się da. Baza danych porównuje zbiory. Zbiór twoich danych wejściowych (daną wejściową jest rekord) ze zbiorem danych z tabeli.
Utwórz sobie taki zbiór i go go porównaj z tabelą. Jesli go nie znajdzie, to wtedy dodaj. Czyli po kolei Utworzenie zbioru jednoelementowego:
Teraz sprawdzasz, czy danych zbiór istnieje. Warunkiem istnienia jest klucz, czyli w tym przypadku login. Jak najłatwiej sprawdzić? Połączyć lewostronnie po kluczu i sprawdzić, czy w drugiej tabeli znalazł dany rekord.
Jeśli zapytanie zwróci ci jakikolwiek rekord (a może zwrócić tylko jeden), to wtedy dodajesz go do `users`. Zapytanie jest o tyle bezpieczne, że możesz je wykonywać ile razy chcesz - rekord doda się tylko raz (bo za każdą następną próbą już będzie)
|
|
|
|
Dukov [MySQL]Dodawanie rekordu jeżeli nie istnieje 4.11.2018, 13:51:54
viking Złap wyjątek dla insert i zamień sobie wtedy odpow... 4.11.2018, 13:59:55
Dukov A możesz nieco jaśniej? Bazy danych to zdecydowani... 4.11.2018, 14:03:01
viking [PHP] pobierz, plaintext try { zapytanie ins... 4.11.2018, 14:34:48
Dukov No dobrze, rozumiem o co chodzi, tylko jak mam zwr... 4.11.2018, 14:53:54
viking Sposób dołączania zapytania nie ma żadnego znaczen... 4.11.2018, 15:12:20
vokiel Nie wystarczy KodINSERT IGNORE ...?
A jeśli już z... 4.11.2018, 16:15:45
viking Czyli według Ciebie lepsze będzie zignorowanie? To... 4.11.2018, 16:19:29
Pyton_000 Ło matko.. najlepiej jak by napisać do tego jeszcz... 5.11.2018, 10:44:13 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 20:17 |