![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 339 Pomógł: 3 Dołączył: 15.10.2008 Skąd: Internet Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pytanie odnośnie wydajności pomiędzy prepare, query a exec w PDO. Czy lepiej jest bindować wszystko i używać prepare, czy też np. część bindować, a część bezpośrednio wpisywać w zapytaniu również przy użyciu prepare, a może stosować query, w przypadku danych, które możemy podać bez bindowania/sprawdzania na ew. podatność sql injection? exec jak wiadomo, głównie do UPDATE/DELETE/INSERT, ale może w tym przypadku również lepiej używać prepare - jeżeli chodzi o wydajność? Pozdrawiam! -------------------- "Nie ma głupich pytań, są tylko głupie odpowiedzi."
Pomogłem?? Kliknij "Pomógł" :) Dzięki! |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Zasada jest prosta
query/exec: SELECT * FROM tabela WHERE kolumna = 1 UPDATE tabela SET kolumna= 1 prepare-execute SELECT * FROM tabela WHERE kolumna = DANE_POCHODZACE_OD UZYTKOWNIKA UPDATE tabela SET kolumna = DANE_POCHODZACE_OD UZYTKOWNIKA |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 339 Pomógł: 3 Dołączył: 15.10.2008 Skąd: Internet Ostrzeżenie: (0%) ![]() ![]() |
Zasada jest prosta query/exec: SELECT * FROM tabela WHERE kolumna = 1 UPDATE tabela SET kolumna= 1 prepare-execute SELECT * FROM tabela WHERE kolumna = DANE_POCHODZACE_OD UZYTKOWNIKA UPDATE tabela SET kolumna = DANE_POCHODZACE_OD UZYTKOWNIKA Jeżeli chodzi o używanie to wiem jak tego używać, tutaj mam namyśli wyłącznie kwestię wydajności. Np., czy lepiej jak już robimy prepare to bindować wszystkie wartości (nawet te nie pochodzące od użytkownika), czy tylko te pochodzące od użytkownika, a pozostałe wpisywać bezpośrednio w zapytaniu? -------------------- "Nie ma głupich pytań, są tylko głupie odpowiedzi."
Pomogłem?? Kliknij "Pomógł" :) Dzięki! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Wiadomo, że te bez bindowania pojedyncze zapytania będą coś tam szybsze. Ale już jak puścisz kilka update z bindowaniem naraz w transakcji, to Ci się zrobi cache tych zbindowanych i pójdzie to szybciej z bindowaniem, niż bez. Tak więc daj sobie spokój z optymalizacją na tym etapie, bo więcej z tego problemów i zależności, niż pożytku.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 21:36 |