Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Użycie kilku typów baz w jednym kodzie
kiler129
post 20.01.2011, 08:39:38
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
Go to the top of the page
+Quote Post
thek
post 20.01.2011, 10:16:30
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
Go to the top of the page
+Quote Post
Mephistofeles
post 20.01.2011, 10:55:41
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.
Go to the top of the page
+Quote Post
kiler129
post 21.01.2011, 20:37:34
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ę smile.gif

@Mephistofeles:
Mógłbyś rozwinąć?


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
Crozin
post 21.01.2011, 20:44:02
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.
Go to the top of the page
+Quote Post
Mephistofeles
post 21.01.2011, 20:52:35
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 biggrin.gif. Ja akurat używam całego Doctrine jako ORMa.

@Crozin
DQL to właśnie robi, ale to część ORMa.

Ten post edytował Mephistofeles 21.01.2011, 20:53:17
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 13:12