![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
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.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Od tego masz np. Doctrine DBAL - Database Abstraction Layer. Pozwala nie przejmować się różnicami składni.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 566 Pomógł: 35 Dołączył: 21.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
@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ę ![]() @Mephistofeles: Mógłbyś rozwinąć? -------------------- flexiCMS v2 [|||||||+--] 75% done
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() @Crozin DQL to właśnie robi, ale to część ORMa. Ten post edytował Mephistofeles 21.01.2011, 20:53:17 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 13:12 |