Może mi ktoś wytłumaczyć jak działa warstwa abstrakcji? Nie jest problemem zrobić klasę DB, a w niej metody typu select, update, delete itd... Problemem nie są również transakcje. Problemem jest dla mnie jak przekazywać skomplikowane zapytania (kilka JOIN)




<?php $result = $objDB->select("SELECT id FROM \"sesja_uzytkownika\" WHERE identyfikator_sesji_ascii = '" . $this->php_session_id . "' AND ((now() - utworzono) < ' " . $this->session_lifespan . " seconds') AND user_agent='" . $strUserAgent . "' AND ((now() - ostatnie_dzialanie) <= '".$this->session_timeout." seconds' OR ostatnie_dzialanie IS NULL)" ); ?>
Równie dobrze mogę pisać SQL prosto w kodzie


Temat był pewnie omawiany wielokrotnie, jednak nie znalazłem żadnego sensownego omówienia tematu. Patrzyłem na gotowe warstwy abstrakcji (PDO), ale tam też używa się zwykłego SQL'a... o co tu chodzi? Chciałbym unikać SQL i mieć go tylko w jednym miejscu - w warstwie abstrakcji!


Czy przekazywanie do metody SELECT tablicy z kolumnami do pobrania plus zmienna zawierająca warunek ma sens? Czy taka funkcja może zwracać tablicę z tablicą wyników, liczbą wyników itp? Czy to jest wydajne? Co ze złożonymi zapytaniami? Czy bez osobnych klas dla każdej tabeli się nie obejdzie? BTW widzę tam masę metod

DO ADMINA: Pytanie zadałem w dziale PROGRAMOWANIE OBIEKTOWE (wydaje mi się odpowiedniejsze) sorry za zamieszanie, moża usunąć ten wątek. Jeszcze raz przepraszam!