[PHP][PDO] Rejestracja |
[PHP][PDO] Rejestracja |
19.08.2009, 19:08:49
Post
#1
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 19 Dołączył: 14.06.2007 Ostrzeżenie: (0%) |
Cześć, czytałem trochę dziś o PDO i postanowiłem użyć go w skryptach. Nie jestem jednak pewny czy dobrze wszystko zrozumiałem i napisałem, więc dobrze by było gdyby ktoś to sprawdził i poprawił, bądź pokazał jak napisać to lepiej. Przykładowy kod: rejestracja.
Z tego co wyczytałem używając bindValue nie muszę już używać na zmiennych innych funkcji typu: stripslashes itp., ponieważ ona sama przed tym zabezpiecza. Może ktoś dokładniej sprecyzować jak to jest? -------------------- "Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein |
|
|
19.08.2009, 19:12:58
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Daaawno było na przedszkolu cokolwiek z wyjątkami jako struktury kontrolne, na plus.
Cytat Nie jestem jednak pewny czy dobrze wszystko zrozumiałem i napisałem, więc dobrze by było gdyby ktoś to sprawdził i poprawił, bądź pokazał jak napisać to lepiej. Przykładowy kod: rejestracja. A nie działa? Cytat Z tego co wyczytałem używając bindValue nie muszę już używać na zmiennych innych funkcji typu: stripslashes itp., ponieważ ona sama przed tym zabezpiecza. Może ktoś dokładniej sprecyzować jak to jest? Zgadza się. -------------------- ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
19.08.2009, 19:59:38
Post
#3
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 19 Dołączył: 14.06.2007 Ostrzeżenie: (0%) |
To, że działa nie znaczy że jest dobrze : )
Przede wszystkim nie bardzo wiem jak mam zliczać ilość zwróconych wierszy w zapytaniu. Fakt, że w tamtym kodzie to działało i pokazywało, że np. taki nick jest już zajęty. Ale np. w tym fragmencie kodu już działa źle. Loguje każdego jak leci : )
-------------------- "Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein |
|
|
19.08.2009, 20:57:44
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) |
w zapytaniu daj jeszcze limit 1 to szybciej zwróci wynik jeśli znajdzie takiego urzytkownika a i tak ma być jeden... po wykonaniu zapytania [$wynik->execute();] obiekt $wynik ma w odpowiedzi jakiś wynik... i np.: $wynik=$wynik->fetch(); jeśli bedziesz miał zalogowanego urzytkownika zwróci Ci tablicę asocjacyjną oraz odpowiednio pola numeryczne kolejno do asocjacyjnej - ja u siebie akurat mam na tablicy asocjacyjnej ale patrząc na Twoje zapytanie bedzie lepiej skożystać z numerycznej i wracając do tego co napisałem wcześniej:
-------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
19.08.2009, 21:47:46
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Sposób z wyciąganiem jednego rekordu przy sprawdzaniu są dane/nie jest tu najlepszy.
Ale jeśli chcesz najszybciej sprawdzać ilość rekordów z zapytania, to wykonaj dodatkowe FOUND_ROWS - poczytaj, co do czego. Swoją drogą, lepiej dla Ciebie najpierw zwalidować formularz i dopiero wtedy katować bazę. ;] -------------------- ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
19.08.2009, 22:22:16
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. |
A nie lepiej po prostu samo COUNT(id)?
-------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
20.08.2009, 10:27:17
Post
#7
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 19 Dołączył: 14.06.2007 Ostrzeżenie: (0%) |
Brakuje mi tu po prostu funkcji typu mysql_num_rows(), ale wyczytałem wczoraj, że wcale nie jest ona tak dobra jak się z początku wydaje. W sumie mogę, więc zliczać ilość zwróconych wierszy na kilka sposobów:
I znów nie pasuje mi kilka rzeczy: Podobno nie da się wykonać drugiego zapytania bez zamknięcia pierwszego za pomocą closeCursor(). A ja mam dwa zapytania pod rząd i to działa. Więc jak to w końcu jest? Chciałbym aby zapytanie oprócz tego że zlicza mi wybrane rekordy, zwracało mi także inne pola. Niby mógłbym wykonać dwa zapytania: jedno z COUNT, a drugie pobierające wszystkie rekordy, ale jak to zrobić w jednym zapytaniu? Teraz wyświetla mi tylko dane z pierwszego wiersza (nie wiem dlaczego) i oczywiście sumę, a ja chciałbym dane z wszystkich wierszy. -------------------- "Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein |
|
|
20.08.2009, 11:57:59
Post
#8
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Cytat Podobno nie da się wykonać drugiego zapytania bez zamknięcia pierwszego za pomocą closeCursor(). A ja mam dwa zapytania pod rząd i to działa. Więc jak to w końcu jest? : Cytat PDOStatement::closeCursor() frees up the connection to the server so that other SQL statements may be issued, but leaves the statement in a state that enables it to be executed again. Cytat Niby mógłbym wykonać dwa zapytania: jedno z COUNT, a drugie pobierające wszystkie rekordy, ale jak to zrobić w jednym zapytaniu? Teraz wyświetla mi tylko dane z pierwszego wiersza (nie wiem dlaczego) i oczywiście sumę, a ja chciałbym dane z wszystkich wierszy. Wyciąga tak dlatego, gdyż count jest funkcją agregującą. Hmm, a found_rows Ci nie pasuje...? -------------------- ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
20.08.2009, 12:29:27
Post
#9
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 19 Dołączył: 14.06.2007 Ostrzeżenie: (0%) |
Cytat Wyciąga tak dlatego, gdyż count jest funkcją agregującą. Hmm, a found_rows Ci nie pasuje...? Może być, o count pytałem tak z ciekawości. Dzięki za pomoc. -------------------- "Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein |
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 09:31 |