Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Użycie kilku typów baz w jednym kodzie
Forum PHP.pl > Forum > PHP
kiler129
Witajcie!
Mam pytanie dla osób piszących większe kody posiadające obsługę kilku baz na raz.
Jak w takim wypadku radzić sobię z zapytaniami? Przecież składnia SQL dla MySQL a PgSQL nieco się różni.
Pomijam też brak sporej części składni (w sumie z oczywistych powodów) w SQLite.
thek
Zazwyczaj w takim wypadku skrypt ma plik konfiguracyjny gdzie określasz jakiego typu jest baza. Dzięki temu wie skrypt co może, a co nie być użyte.
Mephistofeles
Od tego masz np. Doctrine DBAL - Database Abstraction Layer. Pozwala nie przejmować się różnicami składni.
kiler129
@thek:
Tak, wiem, że mogę wykryć przez DBO jakiego silnika używam ale to trochę bez sensu testować i szukać w manie które zapytanie działa na której bazie i robić do tego później ify. To trochę robota na piechotę smile.gif

@Mephistofeles:
Mógłbyś rozwinąć?
Crozin
Cytat
Od tego masz np. Doctrine DBAL - Database Abstraction Layer. Pozwala nie przejmować się różnicami składni.
Raczej pozwala na wykonanie pewnych typowych zadań, ale na pewno nie ujednolica całej składni SQL danego silnika.


Różne bazy danych różnią się między sobą składnią jak i możliwościami, więc musisz pogodzić się z tym, że zapytania będą się różnić między sobą. Mógłbyś co prawda opracować cały język, który byłby tłumaczony na zapytania SQL dla danej platformy, ale raczej nie jest to warte zachodu.
Mephistofeles
Doctrine DBAL
Jest to warstwa pośrednicząca między PDO a aplikacją, oferuje np. konwersję typów danych PHP na typy konkretnego silnika bazy, funkcje niezależne od składni - przynajmniej z tego co widzę w dokumentacji biggrin.gif. Ja akurat używam całego Doctrine jako ORMa.

@Crozin
DQL to właśnie robi, ale to część ORMa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.