![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 159 Pomógł: 6 Dołączył: 2.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Chciałem sobie zrobić mini-profiler w klasie opartej o PDO.
A dokładniej to chodzi mi o to, że metoda queryString przy wykorzystaniu z pdo::prepare zwraca zapytanie w takiej postaci: "DELETE FROM test WHERE id IN(?, ?)" Chciałbym zrobić żeby podane w tablicy argumenty do zapytania były zamienione ze znakami '?' w kolejności, czyli tak to by wyglądało: "DELETE FROM test WHERE id IN(4, 5)"; Kombinowałem trochę na najprostszym sposobem tego rozwiązania np:
co oczywiście nie działa ![]() -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 2 Dołączył: 12.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Podpinanie parametrów pod zapytanie jest realizowane przez PDO jedynie w sytuacji, kiedy baza danych nie obsługuje takiego rozwiązania. W pozostałych przypadkach rola PDO ogranicza się jedynie do wysłania zestawu danych oraz szkieletu zapytania do serwera i to on zajmuje się resztą. W ogóle operacja podpinania to coś więcej, niż zwykłe sklejenie wyjściowego zapytania z tablicy, dlatego też z PDO takiej informacji nie uzyskasz i musisz sobie sam posklejać wynik zwykłymi operacjami na tekście.
zaksmok -> a co Twoje "rozwiązanie" ma wspólnego z PDO? -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Podpinanie parametrów pod zapytanie jest realizowane przez PDO jedynie w sytuacji, kiedy baza danych nie obsługuje takiego rozwiązania Chyba odwrotnie -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 12 Dołączył: 3.03.2008 Skąd: łódzkie Ostrzeżenie: (0%) ![]() ![]() |
Nie odwrotnie.
Zapytywanie bazy przy użyciu bindowania jeśli baza to wspiera jest efektywniejsze. Więc PDO jeśli tylko baza wspiera tworzenie bindowanych zapytań nie robi tego po stronie PHP. -------------------- "Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! | Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!! |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
No tak tak. Czytajac tego posta za 1 razem zrozumialem zupelnie cos odwrotnie
![]() -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 159 Pomógł: 6 Dołączył: 2.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ok dzięki za wyjaśnienie. Napisałem kawałek kodu który działa, ale może macie jakiś inny pomysł na zamianę znaku "?" w stringu na kolejne elementy tablicy.
Moje rozwiązanie.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 16:58 |