Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa do połączeń i zapytań SQL
Zagiewa
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 12.08.2009

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


Witam. Chcę stworzyć klasę do połączenia SQL w której będą też metody do zapytań jednak zależy mi na stworzeniu bardzo wydajnej klasy, a co więcej, żeby cały kod był dobrej jakości dlatego też ja mam pomysł i jakiś zalążek wiedzy, wy za to duże doświadczenie więc liczę, że mi trochę pomożecie smile.gif Głównym motywem na chwile obecną jest stworzenie metod, które będą generowane w zależności od tego co będziemy chcieli osiągnąć. Poniżej zamieszczę kod, który do tej pory napisałem, a pod nim pytania.

  1. <?php
  2.  
  3. class connection {
  4.  
  5. private $DB;
  6.  
  7. function __construct($DB_in) {
  8.  
  9. $this->DB = $DB_in;
  10. }
  11.  
  12. public function SQL_connect() {
  13.  
  14. include('static.php');
  15.  
  16. $sql = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS) or
  17. die("Sprawdź połączenie z serwerem! " . mysql_error());
  18. mysql_query("SET NAMES 'utf8'");
  19.  
  20. mysql_select_db($this->DB, $sql) or
  21. die("Sprawdź bazę! " . mysql_error());
  22. }
  23.  
  24. public function select_table($what_in, $from_in) {
  25.  
  26. $pobierz = "SELECT $what_in FROM $from_in";
  27. $result = mysql_query($pobierz) or
  28. die("Sprawdź rezultat! " . mysql_error());
  29.  
  30. while($row = mysql_fetch_array($result)) {
  31.  
  32. $a = $row[$what_in];
  33. echo $a. "<br />";
  34. }
  35. }
  36. }
  37.  
  38. ?>

  1. <?php
  2.  
  3. include('class.php');
  4. $connect = new connection("nazwa_bazy");
  5. $connect->SQL_connect();
  6. $connect->select_table("id", "nazwa_tabeli");
  7.  
  8. ?>

1. Chciałem aby można było za pomocą jednej metody łączyć się z różnymi bazami dlatego zanim wywołamy metodę SQL_connect() dzięki konstruktorowi podajemy, która baza nas interesuje. Teraz pytanie czy rozwiązanie to jest dobre? Czy może lepiej było by usunąć konstruktor i nazwę bazy podać bezpośrednio do metody czyli: SQL_connect("nazwa_bazy")?
2. Jak wiadomo zanim wykonamy jakiekolwiek operacje na tabelach w bazie trzeba się połączyć z bazą więc łączenie z SQL MUSI się odbyć prawda? więc zastanawiam się czy by nie zrezygnować z metody SQL_connect() i całość kodu wstawić w konstruktor wyglądało by to tak:
  1. function __construct($DB_in) {
  2.  
  3. $this->DB = $DB_in;
  4.  
  5. include('static.php');
  6.  
  7. $sql = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS) or
  8. die("Sprawdź połączenie z serwerem! " . mysql_error());
  9. mysql_query("SET NAMES 'utf8'");
  10.  
  11. mysql_select_db($this->DB, $sql) or
  12. die("Sprawdź bazę! " . mysql_error());
  13. }

Ma to sens? Mam jeszcze pytania odnośnie metody select_table() ale to innym razem. Jeśli macie ew. jakieś zastrzeżenia co do tego kodu to piszcie. Z góry dzięki smile.gif
Go to the top of the page
+Quote Post

Posty w temacie
- Zagiewa   Klasa do połączeń i zapytań SQL   22.02.2011, 16:41:40
- - tehaha   oprócz zastrzeżeń to nie wiele więcej zostaje, naj...   22.02.2011, 18:45:30
- - Zagiewa   Z tym PDO to już jakiś standard? tzn zawsze się te...   22.02.2011, 22:19:07
- - tehaha   1. PDO po prostu został stworzony do obsługi bazy ...   22.02.2011, 22:34:30
- - Zagiewa   Ad.2 Fakt zapomniałem kompletnie o tym, dzięki Ad....   22.02.2011, 22:52:42
- - tehaha   dam Ci jedną radę jak pojawia Ci się jakiś błąd i ...   22.02.2011, 23:04:10
- - Zagiewa   I owszem zrobiłem tak zanim napisałem na forum i w...   22.02.2011, 23:09:06
- - mg2   Obiekt $pdo jest połączeniem do bazy. Rozłącz...   23.02.2011, 01:51:40
- - darko   Dziedzicz po klasie PDO dodając jakieś pożądane fu...   23.02.2011, 01:59:13
- - Zagiewa   Dziś już jestem zbyt zmęczony na dalsze pisanie ko...   23.02.2011, 02:22:29
- - d3ut3r   PDO to właśnie klasa której powinieneś używać, nie...   23.02.2011, 02:51:25
- - Zagiewa   d3ut3r - dokładnie o to mi chodzi. Chcę aby PDO by...   23.02.2011, 17:17:51
- - greycoffey   Tak, szukałeś, ja tu widzę rozwianie.. Kliknij...   23.02.2011, 19:22:00
- - Zagiewa   greycoffey - piękna animacja, podoba mi się jednak...   23.02.2011, 19:30:45
- - darko   Zdaje się, że ta linia [PHP] pobierz, plaintext $s...   24.02.2011, 04:05:59
- - Zagiewa   darko dobrze kombinujesz i też tak próbowałem... j...   24.02.2011, 12:16:41
- - darko   Racja oczywiście nie wolno parametryzować nazw tab...   24.02.2011, 13:55:55
- - Zagiewa   OK zgodzę się z tym, że bindowanie ma na celu zabe...   24.02.2011, 14:13:23
- - darko   Efekt, o który pytasz uzyskuje się za pomocą metod...   24.02.2011, 14:22:13
- - Zagiewa   Więc twierdzisz, że się da stworzyć taki schemat? ...   24.02.2011, 14:33:47
- - darko   Mam wrażenie, że sam sobie nieco utrudniasz życie....   24.02.2011, 15:59:50
- - Zagiewa   darko masz racje można wstawić w zapytanie zmienne...   24.02.2011, 16:41:44


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 Aktualny czas: 20.08.2025 - 04:07