![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.03.2017 Ostrzeżenie: (0%) ![]() ![]() |
Czy mógłby mi ktoś wytłumaczyć dlaczego poniższy fragment kodu zawsze zwraca 0 (nawet kiedy istnieje już w bazie podany login)?
Od kilku dni próbuje się uporać z problemem sprawdzenia czy zapytanie zwróciło jakieś rekordy, czy nie. Choć w sieci jest pełno tematów na ten temat i tak nie udało mi się znaleźć rozwiązania. Z mysqli nie było takich problemów, a po przejściu na PDO od razu człowiek dostaje bólu głowy (IMG:style_emoticons/default/wacko.gif) Ten post edytował Laxus 5.03.2017, 20:36:12 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.03.2017 Ostrzeżenie: (0%) ![]() ![]() |
Też doczytałem, że rowCount() nie działa na SELECTach.
Próbowałem użyć funkcji fetchColumn() z zapytaniem "SELECT COUNT(*) FROM users WHERE login = ?". Także nie zadziałało. A przykładowo w tym filmiku Wstęp do PHP #2 Logowanie i PDO ktoś użył rowCount() oraz SELECT i mu zadziałało. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
a testowałeś ten kod który przedstawiłem poniżej cytatu z manuala?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.03.2017 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy dobrze to zapisałem:
Nadal zawsze zwraca 0. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Czasem błędy są gdzie indziej niż my szukamy.
Czy zapytanie $_POST['login'] wysyła poprawną wartość? Bo może wynik jest 0 ponieważ, nie ma takiego loginu w bazie SELECT * FROM users WHERE login = ? Zrób print_r($_POST); a potem na sztywno daj do zapytania wynik i sprawdź np. w PHPMyAdmin |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.03.2017 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc. Problem rozwiązany.
Funkcja rowCount() jednak działa, także w przypadku SELECT. Problemem okazały się białe znaki wewnątrz nawiasów przy tworzeniu obiektu PDO. Najwidoczniej ta linijka została pomijana, bo nawet błąd nie wyskakiwał. Jak pozbyłem się zbędnych spacji wszystko śmiga. O dziwo parę dni temu, jak pisałem ten fragment kodu, łączył się z bazą i spacje w niczym nie przeszkadzały (IMG:style_emoticons/default/ohno-smiley.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
A jaki masz poziom error_reporting? Może błędy masz niewidoczne.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 5.03.2017 Ostrzeżenie: (0%) ![]() ![]() |
Błędy mam widoczne. Przed chwilą robiłem literówki przy połączeniu z bazą i wywala błędy.
Wcześniej nie chciał, stąd założyłem że pomijał całą linię. Co do tego error_reporting to nie wiem nawet co to (IMG:style_emoticons/default/laugh.gif) W php.ini mam tak: CODE ; error_reporting ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ; Development Value: E_ALL ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT Nie wiem czy o to chodzi. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Wszystkie masz wykomentowane tutaj, ale podczas rozwijania serwisu najlepiej mieć wszystkie włączone:
E_ALL, wtedy wszystkie najmniejsze błędy programowania się pokazują. Np. brak zadeklarowanych zmiennych. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 16:28 |