![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 18 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam ponownie.
Tym razem na tapecie pojawilo sie trudniejsze zadanie. Pytanie wygenerowane w sposob tradycyjny wyglada mniej wiecej tak:
Chcodzi o to, że mam w tym zadaniu kilka roznych danych do przekazania w zapytaniu np: pierwszy warunek to rożne id kategorii; drugi to AND w którym są słowa wyszukiwane metodą LIKE; nastepnie jest ORDER po kolumnie kolejnosc; i na końcu LIMIT. Co mam a co chcę osiągnąć: - kategorie mam w tablicy i moge zamienic na string ?,?,?,?,?,?,?,?,? iwstawic WHERE IN - i bedzie ok - slowa ktore maja byc wyszukane za pomoca LIKE chyba też tak moge zrobic - ale nie wiem czy moge przekazać do execute() dwie tablice ? a dodatkowo jak to połączyć ANDem - ORDER BY tu mam na stałe wpisane 'kolejnosc DESC' - ale czy moglbym to rozbic na 2 dodatkowe zmienne i dynamicznie podstawic do zapytania ? bind Param można do tego użyć ? - LIMIT - no tu tez mam zagadke - gdyby zapytanie bylo proste dalbym zwykly bindValue ale poniewaz wczesniej byly uzyte ?,?,?,? to zastanawiam sie czy nie dolaczyc tego co jest za LIMIT jak 2 dodatkowe ?,? i przeslac jako 1 tablica ? Ogólnie tak jak widze sporo jest zamieszania z tym PDO. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 22 Dołączył: 10.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
W PDO niema możliwości podpinania wartości do innych miejsc niż "where". Także na wstępie możesz zapomnieć o podpięciu nazw tabeli bądź limitów. Kolejną wadą jest brak możliwości podpinania danych w tablicy. O te wszystkie dane musisz sam zadbać. Co do zapytania. Rozumiem że wartości do "where" masz dynamicznie zmieniające się i nie zawsze one występują.
Osobiście buduję warunek "where" w tablicy, a później ją tylko imploduje z potrzebnym dla mnie operatorem. Co do order by oczywiście że możesz go sobie również zbudować. O ile się nie mylę to w zendzie standardowa ich biblioteka opiera się o SQL Builder. Możesz się na nich wzorować. Przykład sklecony na szybkości.
Ten post edytował YourFrog 15.01.2014, 20:11:15 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 09:46 |