Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] klasa do obsługi bazy danych - oop
Forum PHP.pl > Forum > Przedszkole
dwwa
próbuję napisać klasę do obsługi bazy danych mysql, z oop u mnie marnie, dopiero zaczynam

mam takie coś:
  1. <?php
  2.  
  3. class SQL {
  4.  
  5. private $db_host = DB_HOST;
  6. private $db_user = DB_USER;
  7. private $db_pass = DB_PASS;
  8. private $db_name = DB_NAME;
  9.  
  10. public $connection;
  11. public $sql_error;
  12.  
  13. public function sql_connect() {
  14. if ($connection = mysql_connect($this->db_host, $this->db_user, $this->db_pass)) {
  15. if (mysql_select_db($this->db_name)) {
  16. $this->connection = $connection;
  17. return true;
  18. }
  19. else {
  20. echo $this->sql_error = mysql_error();
  21. return false;
  22. }
  23. }
  24. else {
  25. echo $this->sql_error = mysql_error();
  26. }
  27. }
  28.  
  29. }
  30.  
  31. ?>

czy takie coś jest w miarę dobrze napisane?
Mephistofeles
Nie.
mysql_ to zamierzchła przeszłość. Dzisiaj mamy PDO, nie musisz pisać własnego opakowania.
darko
Do nauki podstaw chyba większość z nas opakowywała jakąś funkcjonalność bazodanową. Oczywiście z kodu żadnego użytku nie będzie, ale dla celów edukacyjnych takie rzeczy można pisać "do szuflady". To tak:
- metoda łącząca nas z bazą powinna przyjmować parametry: host, user, pass, db_name, opcjonalnie port U Ciebie bierze te dane z pól klasy i ... ok, ale nie ma tutaj możliwości podania tych parametrów, a powinno w takiej metodzie być miejsce na to;
- gdzie są metody CRUD ? Dopisz;
- nigdy przenigdy nie robimy echo, print itd w metodzie. Metoda powinna zwracać określoną wartość lub wartości, ale nigdy wyrzucać bezpośrednio na ekran jakichkolwiek danych, po prostu zamiast echo $this->sql_error = mysql_error(); wystarczy przypisać $this->sql_error = mysql_error(); i dopisać metodę getLastError() która zwróci $this->sql_error;
Osobiście poćwiczyłbym rozszerzając istniejącą klasę PDO, która i tak ma już większość tego, co jest potrzebne, w każdym razie powodzenia w nauce!
dwwa
ok dzięki za odp

Cytat(darko @ 20.10.2011, 22:40:18 ) *
- metoda łącząca nas z bazą powinna przyjmować parametry: host, user, pass, db_name, opcjonalnie port U Ciebie bierze te dane z pól klasy i ... ok, ale nie ma tutaj możliwości podania tych parametrów, a powinno w takiej metodzie być miejsce na to;

jak z pól? mam plik np. config.php a w nim:
  1. DEFINE('DB_HOST', 'localhost')

czy nawet w index.php przed załadowaniem klasy można takie coś dać

jaką polecacie klasę do napisania na początek nauki oop?
by_ikar
Kod
jaką polecacie klasę do napisania na początek nauki oop?


Jaką kolwiek wink.gif ja swoją pierwszą klasę jaką napisałem, to był pager, którego co prawda zdążyłem już kilkanaście razy zmodyfikować (ulepszyć), ale ogólny zarys działania klasy, pomijając drobne poprawki używam do dnia dzisiejszego i sprawuje się całkiem dobrze smile.gif
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.