Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] pdo i bindvalue
wojtekw
post
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 11.09.2007

Ostrzeżenie: (0%)
-----


czy w pdo można warunkowo podawać parametry w pytaniu select, czy trzeba sklejać stringa pytającego ?
Chodzi mi o coś takiego:

  1. SELECT * FROM tab WHERE nazwa1=:nazwa1 AND nazwa2=:nazwa2 AND nazwa3=:nazwa3


i teraz jeśli mam spełnione jakieś warunki binduje te 3 parametry. Ale jeśli są niespełnione to tego warunku powinno nie być lub też dla poszczególnych parametrów wyrzucić je z where'a.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




musisz sam tworzyc wlasciwego selecta na podstawie warunkow. Niby skad PDO ma wiedziec ze ma ci akurat usunac ten a ten warunek. PDO tylko podczepia sie pod parametry co mu kazesz.
Go to the top of the page
+Quote Post
wojtekw
post
Post #3





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 11.09.2007

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 11.03.2008, 13:04:31 ) *
Niby skad PDO ma wiedziec ze ma ci akurat usunac ten a ten warunek.

no właśnie stąd że nie zbinduję tej zmiennej przed wywołaniem zapytania.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale skad PDO ma wiedziec ze jesli nie zbindujesz :nazwa3 to ona ma usuanc warunek "and nazwa3=:nazwa3 " ? No skad on ma to wiedziec? Uwierz mi, ale PDO nie czyta ci w myslach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Podsumowujac: musisz sam tworzyc zapytania takie jakie maja byc.
Go to the top of the page
+Quote Post
wojtekw
post
Post #5





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 11.09.2007

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 11.03.2008, 13:44:24 ) *
ale skad PDO ma wiedziec ze jesli nie zbindujesz :nazwa3 to ona ma usuanc warunek "and nazwa3=:nazwa3 " ? No skad on ma to wiedziec? Uwierz mi, ale PDO nie czyta ci w myslach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Podsumowujac: musisz sam tworzyc zapytania takie jakie maja byc.

No więc tak, myślałem sobie że ktoś kto to tworzył powiedział bibliotece tak:

Gdy zostanie przygotowane zapytanie select z parametrami w klauzuli where to zamiast wartości człowiek napisze dwukropek i nazwę jakiejś zmiennej której przypiszę wartość przed wywołaniem zapytania. Natomiast jeśli tej zmiennej nic nie przepisze to pomiń ją i nie uzywaj w where bo jednak jak się okazuje w tym przypadku w danym momencie jest niepotrzebna. tak sobie to pomyślałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Ale cóż nie ja PDO budowałem więc się dostosuję.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




to sobie teraz pomysl ze masz taki warunek
... and pole1=1 and nazwa3=:nazwa3
gdzie pole1=1 dodajesz tez tylko wtedy gdy masz :nazwa3
Skad ten biedny ktos kto tworzyl PDO ma wiedziec ze chcesz rowniez usunac ten warunek pole1=1 ktory pojawia sie tylko z :nazwa3

Wymyslasz chlopie w tej chwili bez zastanowienia sie nad tym ze jest to praktycznie nie mozliwe do zrealizowania tej Twojej zachcianki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

edit down: widze ze dyskusja z Tobą prowadzi do nikąd. Ja juz wiec podziękuje.
Go to the top of the page
+Quote Post
wojtekw
post
Post #7





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 11.09.2007

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 11.03.2008, 14:00:22 ) *
to sobie teraz pomysl ze masz taki warunek
... and pole1=1 and nazwa3=:nazwa3
gdzie pole1=1 dodajesz tez tylko wtedy gdy masz :nazwa3
Wymyslasz chlopie w tej chwili bez zastanowienia sie nad tym ze jest to praktycznie nie mozliwe do zrealizowania tej Twojej zachcianki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


A to jaki problem żeby to zapytanie przy braku nazwa3 kończyło się tak:
... and pole1=1.
bo ja dokładnie tak zrobić. Sorry długo nie bawiłem się php, ale nie widzę nic nielogicznego w stwierdzeniu:
"Jeśli klient nie powie ci jaki chce mieć kolor samochodu to daj mu dowolny."
,a PDO robi tak
"Jeśli klient nie powie ci jaki chce mieć kolor samochodu to samochodu nie sprzedawaj."

Ten post edytował wojtekw 11.03.2008, 14:09:53
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:35