Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bazy danych a połączenie do nich
Forum PHP.pl > Forum > PHP
mablo
No właśnie pytanie tak jak w temacie ale wyjaśnie o co mi chodzi dokładnie.

Pisze system newsów i chce żeby przy instalacji można było wybrać jedną z dostępnych baz danych. Jednak nie wiem jak zrobić kod php w którym bedą połączenia do baz danych.

Czy zrobić jakąś funkcje np.

  1. <?php
  2. function connect($rodzaj_bazy)
  3. {
  4.  if($rodzaj_bazy == &#092;"myslq\"){
  5. mysql_connect(&#092;"localhost\",\"aaa\",\"aa\");
  6.  }elseif($rodzaj_bazy == &#092;"pg\"){
  7. pgl_connect(&#092;"host=localhost\");
  8.  }
  9. }
  10. ?>

i gdzies zapisac w jakims pliku jaka to jest baza danych np. w config.php
  1. <?php
  2. $rodzaj_bazy = &#092;"mysql\"
  3. ?>


I czy w podobny sposób zrobić wyciąganie danych z baz danych.

Ktoś ma jakieś pomysły questionmark.gif
FiDO
Lepiej napisac sobie osobne klasy do obslugi kazdej z baz z wspolnym API (takie same nazwy metod do laczenia, zapytan etc.) i tworzyc jedna z nich w zaleznosci od wyboru.. mozesz tez skorzystac z gotowych rozwiazan typu AdoDB. Pamietaj tylko, ze nie wszystkie zapytania musza wygladac tak samo w kazdej bazie, wiec w niektorych przypadkach moze byc koniecznie przerobienie zapytania dla jakiejs konkretnej bazy.. nawet "zwykly" select z joinem potrafi wygladac roznie.. np. w Oraclu jest on zrobiony zupelnie inaczej niz w MySQL'u.
kubatron
Ja dodam od siebie że pod PHP5 dzięki metodzie __call() mamy możliwośc uproszczenia kodu głównego pliku który zarządza wybieraniem poszczególnych baz danych smile.gif
SongoQ
Cytat
nawet "zwykly" select z joinem potrafi wygladac roznie.. np. w Oraclu jest on zrobiony zupelnie inaczej niz w MySQL'u.


Tu akurat sie mylisz. Jest taki sam. Taka najwieksza roznica to ze ORACLE nie ma LIMITu.
FiDO
Cytat(SongoQ @ 2005-06-29 11:36:27)
Cytat
nawet "zwykly" select z joinem potrafi wygladac roznie.. np. w Oraclu jest on zrobiony zupelnie inaczej niz w MySQL'u.


Tu akurat sie mylisz. Jest taki sam. Taka najwieksza roznica to ze ORACLE nie ma LIMITu.

Jak mielismy Oracla na laborkach to joiny wygladaly inaczej smile.gif Ale troche przesadzilem, bo zajrzalem do wykladow i widze, ze tylko outer joiny sie roznia..
  1. WHERE e.deptno(+) = d.deptno

No chyba, ze obslugiwana jest tez skladnia Mysql-like.. ale tego to juz nie wiem..
SongoQ
  1. WHERE e.deptno(+) = d.deptno


To jest nowa skladnia wprowadzona w oracle, tamto tez dziala ale zalecaja stosowanie takiego czegos, to poprostu ma skrocic skladnie ON (warunek).

Cytat
No chyba, ze obslugiwana jest tez skladnia Mysql-like.. ale tego to juz nie wiem..

Tak naprawde cos takiego jak LIMIT nie istnieje w ORACLE, mozna by sie skusic i napisac wlasna funkcje ktora to realizuje, ale po co. W ORACLE robi sie tak ze numerujesz w podzapytaniu wiersza a nastepnie wyciagasz to co Cie interesuje. Wydaje mi sie ze to daje Ci zupelna elastycznosc, no ale z PG i MySQLem sie jakos do takich funkcji przyzwyczailem, jak jest to trzeba stosowac.

Odnosnie standardu SQLa to tak naprawde taka firma jak ORACLE jest duzo duzo przed innymi bazami danych (i to oni kreuja w wiekszej mierze ten jezyk), wprowadzaja cos co za pare lat dostepne jest w innych bazach, a PG gonie ich.
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.