mam taki oto problem. Stworzyłem sobie bazę sqlite. W bazie mam użytkowników. Można się rejestrować w bazie z formularza na stronie. Chcę aby użytkownicy mieli unikalne nazwy. W tym celu zastosowałem if. Ale coś mi nie działa. Czytam, szukam, próbuje i nic. Oto kod:
<?php try { $nazwa = $_POST['nazwa']; $pesel = $_POST['pesel']; $email = $_POST['email']; $db = new PDO('sqlite:baza.sqlite'); $r = $db->exec("SELECT COUNT(nazwa) FROM osoby WHERE nazwa='$nazwa'"); if ($r = 1) { } else { $db->exec("INSERT INTO osoby (nazwa, haslo, pesel, email) VALUES ('$nazwa', '$haslo', '$pesel', '$email');"); } $db = NULL; } catch(PDOException $e) { } ?>
Na początku przyjmuję z formularza dane, później łączę się z bazą, wrzucam do zapytania zmienną z nazwą użytkownika, który się rejestruje. Jeśli nazwa użytkownika znajduje się w bazie to warunek 1=1 i użytkownik nie bedzie się mógł zarejestrować. Jeśli nie to się zarejestruje. Problem w tym, że cokolwiek bym nie wpisal to zawsze skrypt pokazuje, że użytkownik w bazie istnieje. Próbowałem też z zapytaniem bez COUNT() tylko z porównaniem nazw użytkownika i to samo. Ma ktoś pomysł jak to rozwiązać? Rozwiązania z google mi nie pomogły. Dodam, że w PDO jestem laikiem. No i poza PDO wszystko działa.
Proszę o pomoc.