Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasa bazy danych
Forum PHP.pl > Forum > PHP > Object-oriented programming
Largo
Witam,

Zaczynam z programowaniem obiektowym, ale nawet jak na początkującego idzie mi całkiem :-) Piszę sobie właśnie klasę do obsługi bazy danych, ale nie prostą. Prostą już napisałem, teraz chciałbym zrobić coś nowego. Chcialbym zmienić styl zapytań SQL, ale tu mam nie mały problem. Moje obecne zapytania wyglądają tak:

  1. this->build_query = ("SELECT * FROM table");
Zbudowanie zapytania
  1. this->exec_query();
Wykonanie zapytania

Chciałbym je zamienić na coś takiego:

  1. <?php
  2. * Update:
  3. * $db->do_update( 'table', array( 'field' => 'value', 'field2' => 'value2' ), 'id=1' );
  4. * Insert
  5. * $db->do_insert( 'table', array( 'field' => 'value', 'field2' => 'value2' ) );
  6. * Delete
  7. * $db->build_and_exec_query( array( 'delete' => 'table', 'where' => 'id=1' ) );
  8. * Select
  9. * $db->build_query( array( 'select' => '*',
  10. *  'from'  => 'table',
  11. *  'where' => 'id=2 and id=1',
  12. *  'order' => 'date DESC',
  13. *  'limit' => array( 0, 30 ) ) );
  14. ?>


Teraz mam pytanie dość proste, ale sam nie wiem. Mam plik konfiguracyjny, ale nie chcę używać "global"... Te wpisy są w tablicy, tak wygląda mój config.php:

  1. <?php
  2.  
  3. $CONFIG['host'] = "root";
  4. $CONFIG['user'] = "root";
  5. $CONFIG['pass'] = "";
  6. $CONFIG['port'] = "3306";
  7. $CONFIG['base'] = "";
  8.  
  9. ?>


I jak użyć tego, aby klasa z tego korzystała za każdym razem... require() użyć? Ale co, dać require() w klasie na początku i tam łączyć się, a potem stworzyć plik z klasą, która będzie korzystała z klasy, ale ona będzie wykonywała operacje? Bo jak dodam w jednej klasie, to będzie duża i trochę dużo miejsca mi z tym zejdzie i namieszam... Co Wy na to poradzicie?

PS. Coś znalazłem i zapytam Was czy to dobry pomysł. Jeżeli mam plik config.php to odwołam się do niego w index.php za pomocą require class_db.php i potem dam:

  1. <?php
  2. $CONFIG = array();
  3. ?>


A potem tak zamienię:

  1. <?php
  2. $db = $CONFIG;
  3. ?>


To czy w ten sposób uniknę require i wszystko będzie grać?

Z góry dziękuję każdej osobie, która mi pomoże :-)

Pozdrawiam,
Largo
Turgon
Dużo wygodniej byłoby Ci stworzyć konfigurację na plikach ini. Do tego klasę która by to pobierała i zarządzała - wtedy masz dla całego systemu winksmiley.jpg
A przemiana "prostej" na "zaawansowaną" polega raczej na zbudowaniu czegoś w rodzaju generatora zapytań winksmiley.jpg
matix
Napisałem coś bardzo podobnego i przedstawilem już to tutaj na forum.

Zapraszam tutaj: Temat: PHPMVC Od czego zaczac

na pierwszej stronie masz 2 klasy, jedna abstract i druga final - działa podobnie do tego czego oczekujesz. Zmień ją sobie i troche i już biggrin.gif

Btw . Konfigurację rób sobie w pliku *.ini, jak napisał Turgon. W mojej klasie, możesz sobie setSource() przerobić na swoj styl, bo właśnie ta metoda jest u mnie odpowiedzialna za czytanie konfiguracji z pliku *.ini.

Pozdrawiam,
Mtx.
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.