![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Rozpocząłem starcie z PDO
![]()
Zacząłem od takiej oto funkcji, zwracającej dane usera:
Funkcja zwraca identyczne dane. Czy można to zrobić lepiej? -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli chodzi o PDO to używaj "prepared statements".
1) extract($GLOBALS); - naprawdę? 2) To można zamienić na if else. 3) te dwa zapytania do bazy na 99% można zastąpić jednym -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
1. Inaczej zgłasza błąd Fatal error: Call to a member function query()
2. No można. 3. Ledwie skleciłem to ![]() -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
1. Inaczej zgłasza błąd Fatal error: Call to a member function query() Zgadza się, jest to związane z zakresem zmiennych (funkcja getUser2() nie ma dostępu do zmiennej $pdo).Opcje: 1) wystarczy: global $pdo; (brzydko) 2) przekaż do funkcji zmienną $pdo jako argument (lepiej) 3) przepisać to na kod obiektowy np. z użyciem wzorca singleton i poczytać o dependency injection (najlepiej) ![]() -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
1. global $pdo nie działało
![]() 2. to ma sens 3. a świstak siedzi i zawija w sreberka ![]() Mam kolejny problem. Taki kod:
na taki:
To działa, zwraca takie same wyniki, ale czy można lepiej? Druga rzecz. Kodowanie połączenia. Miałem: W bazie polskie znaki, pliki również UTF-8 a po zmianie na PDO wychodzą krzaki... -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
A w jaki sposób to wywołujesz? Dla mysql możesz bezpośrednio
albo ....exec("set names utf8"); -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
W pierwszym poście zamieściłem połączenie z bazą. Czyli coś takiego powinienem użyć?
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Zobacz czy działa a potem pytaj
![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
No właśnie, nie działa...
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jaka wersja PHP? Poniżej 5.coś nie działało. Spróbuj jeszcze drugą metodę z exec
-------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Nie, nie, mam powyżej 5. Być może to wina tego zapytania ostatniego. Zauważyłem teraz, że ucina mi pierwszy rekord.
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
poza tym powinieneś bindować dane, inaczej stosowanie PDO nie ma sensu Ten post edytował Turson 23.03.2014, 15:23:28 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
To wiem, tak robię. Tylko nigdzie nie mogę znaleźć dobrego artykułu na temat PDO. Nie wiem np., czy ma sens bindowanie zapytań z danymi niepochodzącymi z formularzy i linków...
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 292 Pomógł: 89 Dołączył: 27.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
while($row = $prods->fetchAll()) ? Bardziej: while($row=$prods->fetch()){ .. } -------------------- Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Tak właśnie miałem, zmieniłem:
na:
Inaczej nie zwracało wyników. Nadal nie mam polskich znaków. Tabele w utf8_general_ci. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Po połączeniu wykonaj trzy zapytania:
SET character_set_connection=utf8 SET character_set_client=utf8 SET character_set_results=utf8 -------------------- |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Więc może te dane nie są w UTF-8 albo nie ustawiasz header. W stopce mam artykuł o PDO. Może Ci pomoże.
-------------------- |
|
|
![]()
Post
#19
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Czytałem ten artykuł. Wszystko wyświetla się dobrze, z zapytań MySQL, po zmianie na PDO krzaczy.
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
while($row = $prods->fetchAll()) ? Bardziej: while($row=$prods->fetch()){ .. } $dane = $prods->fetchAll(); foreach($dane as $v) tak zazwyczaj piszę stąd mi się pomyliło. Kschyhoo, ja zawsze robię tak: - baza w utf8_polish_ci - plik w utf8, dokument w utf8 - połączenie z bazą jak podałem i nigdy nie mam problemu z pl znakami |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 17:11 |