Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa bazy danych
Largo
post 17.11.2007, 13:30:24
Post #1





Grupa: Zarejestrowani
Postów: 203
Pomógł: 6
Dołączył: 11.09.2005

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


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

Ten post edytował Largo 17.11.2007, 14:46:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Turgon
post 17.11.2007, 19:57:45
Post #2





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


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


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
matix
post 18.11.2007, 11:00:56
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


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.


--------------------
Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
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: 13.08.2025 - 22:59