Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wiele baz danych w jednej aplikacji.
--Darko--
post 6.02.2013, 13:08:18
Post #1





Goście







Tak się zastanawiam jak rozdzielić używanie kilku silników w jednej aplikacji.

Zakładając że np. podczas świeżej jej instalacji wybieram mysql.
Używam PDO i... jak rozdzielić kod dla mysql od innej np. postresql?

  1. $pdo = new PDO;
  2.  
  3. if($dbEngine = 'mysql')
  4. {
  5. // tu zapytanie dla mysql
  6. }
  7. elseif($dbEngine = 'inna')
  8. {
  9. //tu zapytanie dla innej bazy jak taka została wybrana przy instalacji.
  10. }


Jak dokonywać wyboru? I aby to było łatwe w organizacji, używaniu przy czymś bardziej rozbudowanym.
Go to the top of the page
+Quote Post
Sephirus
post 6.02.2013, 13:51:01
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Najprościej pod tym kątem to chyba robić podwójne modele (jeśli zapytania się będą aż tak różniły). Oba modele powinny mieć takie same metody. Wiedząc jakiego typu bazę mamy wybraną ładujemy odpowiedni model i dalej pracujemy na nim. Dzięki temu niezależnie jaki będzie wybrany model reszta aplikacji będzie korzystała z tego modelu dokładnie tak samo jak z innego.



--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
mar1aczi
post 6.02.2013, 13:59:15
Post #3





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


PDO nie jest przypadkiem po to, aby była przenośność między różnymi silnikami bazy danych?
Zmieni Ci się tylko, w zależności od silnika, polecenia łączenia się z bazą. Zajrzyj do manuala PDO.


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
Sephirus
post 6.02.2013, 14:01:30
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


@UP w teorii masz rację, jednak nie wiem czy pracowałeś kiedyś na MySQL i PostgreSQL? Bo zapytania same się różnią od siebie (oczywiście nie te najprostsze). Sam wybór drivera PDO to może być za mało.


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
mar1aczi
post 6.02.2013, 17:54:48
Post #5





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


@Sephirus
W odniesieniu do składni dla PDO, zmieni się konstrukcja tworzenia, wykonywania zapytań? Wydaje mi się, że nie. Zmianie ulegnie natomiast sama konstrukcja funkcji na poziomie sql-a czyli dla "select" czy "insert"/"update".

@autor
Wykorzystując nazwę sterownika podawaną do pdo możesz oprogramować funkcje zaczynające się od przedrostka o tej nazwie.

Ten post edytował mar1aczi 6.02.2013, 17:55:30


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
Sephirus
post 6.02.2013, 17:57:07
Post #6





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


@up no właśnie mi o to chodzi - a jeśli dobrze zrozumiałem autora to on chce mieć możliwość pracy na bazie MySQL lub PostgreeSQL zależnie od wyboru - musi więc gdzieś mieć zapisane zapytania pod MySQL i inne pod Postgresa - stąd propozycja dwóch modeli - PDO i wykorzystanie jego metod oczywiście będzie identyczne smile.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
mar1aczi
post 6.02.2013, 18:03:47
Post #7





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Tak jest, o to samo mi chodziło smile.gif Mając oddzielne modele można "klientowi" oddać aplikację pod konkretny silnik bazy bez konieczności grzebania w kodzie. Ten argument stawia Twoje rozwiązanie korzystaniejsze od mojego sugerowanego z nazwami funkcji. Oddaję ukłon w Twoją stronę wink.gif


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
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: 14.08.2025 - 14:42