Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Active Record - where
ayeo
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


W celach edukacyjnych piszę sobie coś jakby Active Record. Zastanawiam się jak to jest z klauzulą WHERE w innych tego typu rozwiązaniach. Jak na razie to widziałem tylko w Code Igniter coś takiego:

$AR->where($nazwa_kolumy, $wartość);

co oznacza WHERE nazwa_kolumny = wartość. Można oczywiście wywołać tą metodę wielokrotnie co nam połączy poszczególne zapytania. Problemem jest przekazywanie warunków typu WHERE nazwa_kolumny > wartość lub jakieś bardziej skomplikowane zapytania typu:

WHERE (kolumna1 > 10 OR kolumna2 < 100) AND kolumna3 = 1

Można to niby rozwiązać przez przekazywanie całego warunku do metody where(); jednak stwarza to dodatkowe problemy. Jakie są wasze propozycje i jak Wy rozwiązujecie coś takiego u siebie?

Z góry dziękuję za wszelkie rady/wskazówki/sugestie. Pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


eZComponents udostępnia specjalny obiekt ezcQueryExpression uzbrojone w odpowiedni zestaw metod:

  1. <?php
  2. $q->select( '*' )->from( 'table' )
  3.  
  4.  
  5. // WHERE id = 1
  6. ->where( $q->expr->eq( 'id', $q->bindValue( 1 ) ) );
  7.  
  8. // WHERE id <> 1
  9. ->where( $q->expr->neq( 'id', $q->bindValue( 1 ) ) );
  10.  
  11. // WHERE id > 1
  12. ->where( $q->expr->gt( 'id', $q->bindValue( 1 ) ) );
  13.  
  14. // WHERE id IN (1, 2, 3)
  15. ->where( $q->expr->in( 'id', 1, 2, 3 ) );
  16.  
  17. // etc
  18. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 03:49