![]() |
![]() ![]() |
![]() |
--void-- |
![]()
Post
#1
|
Goście ![]() |
Chcę zapisywać do bazy email tylko wtedy, kiedy jeszcze nie ma takiego w bazie. Da się jednym zapytaniem? Teraz robię to tak że najpierw pobieram SELECTem a potem INSERTem zapisuję, jeśli pierwsze zapytanie nie zwróciło rekordów, ale nie chcę tak. Mam tabelę emails z jedną kolumną email, które jest kluczem unikalnym.
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
Nie jestem pewniem czy istnieje takie zapytanie, aczkolwiek będzie musiało ono wykonać to samo co tamte 2 zapytania, więc wątpię czy nie licząc skrócenia kodu, da to jakieś efekty wydajności/szybkości.
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Możesz zrobić po prostu zwykły INSERT i po nim sprawdzić czy wystąpił błąd naruszenia unikalności. Wtedy wyświetlasz komunikat, że takowy e-mail już istnieje w bazie danych.
Jeśli baza danych to MySQL to możesz skorzystać z tworu jakim jest REPLACE. Ten post edytował phpion 29.07.2008, 18:18:01 |
|
|
--void-- |
![]()
Post
#4
|
Goście ![]() |
Ok, dzięki, o to chodziło (ufam, że macie rację), myślałem że jest jakoś fajnie to zaimplementowane bo w sumie chyba często się taka sytuacja zdarza, przynajmniej mi. Zaraz sprawdzę, jak działa ten błąd gdy INSERT próbuje zapisać coś co już jest w bazie a ma atrybut UNIQUE. Powinienem dać radę chyba. Dzięki.
|
|
|
--void-- |
![]()
Post
#5
|
Goście ![]() |
Nie mogę edytować:
właśnie chodziło mi o coś w rodzaju REPLACE, czyli jednak twórcy o tym pomyśleli. Tak, moja baza to MySQL. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 22:09 |