Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa do obsługi mySQL.
boosik01
post
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 19.08.2009

Ostrzeżenie: (10%)
X----


Witam! Od 5 dni uczę się OOP. Pewnie jak każda osoba która uczy się OOP naukę rozpoczyna przy pisaniu klasy do obsługi mysql.
No więc i tak ja też uczyniłem. Chciałbym byście spojrzeli na moją klasę i postarali się jakoś mi pomóc (co dodać, poprawić etc.)
Chcę napisać jeszcze klasę do zapisywania logów z błędów, i tu pojawia się pytanie czy w OOP zapisywanie do pliku jest normalnie za pomocą funkcji
fwrite() czy też jest jakaś inna funkcja bardziej nadająca się do tego typu operacji.

PS. Pod klasą dałem utworzenie obiektów, bo nie chciało mi się robić już tego w osobnych plikach.
  1. <?php
  2. /**
  3.  * Prosta klasa obsługi bazy danych MySQL
  4.  * Author: boosik01
  5.  * (c) 2011
  6.  */
  7. class mySQL
  8. {
  9. private $sConfig ;
  10.  
  11. public function __construct($sConfig = '')
  12. {
  13. if(!$sConfig)
  14. {
  15. $this->host = $sConfig = 'localhost' ;
  16. $this->user = $sConfig = 'root' ;
  17. $this->pass = $sConfig = '' ;
  18. $this->db = $sConfig = 'test' ;
  19.  
  20. if(!@$this->connect = mysql_connect($this->host, $this->user, $this->pass))
  21. throw new Exception ('Nie można połączyć się z bazą danych! ' . mysql_error() );
  22. if(!@mysql_select_db($this->db))
  23. throw new Exception ('Błąd wyboru bazy danych! ' . mysql_error());
  24. }
  25. else
  26. {
  27. $sConfig == NULL ;
  28. }
  29. }
  30.  
  31. public function __destruct()
  32. {
  33. mysql_close($this->connect) ;
  34. }
  35.  
  36. public function mysql_fetch_array($mysql_query)
  37. {
  38. $this->mysql_query = $mysql_query ;
  39. if(!@$this->mysql_query = mysql_fetch_array(mysql_query($this->mysql_query)))
  40. throw new Exception ('Wystąpił błąd w wyświetlaniu / lub UPTADE danych. ' . mysql_error());
  41. return $this->mysql_query ;
  42.  
  43. }
  44.  
  45. public function query($query)
  46. {
  47. $this->query = $query ;
  48. if(!@$this->query = mysql_query($this->query))
  49. throw new Exception ('Wystąpił błąd w konstrukcji zapytania. ' . mysql_error()) ;
  50. return $this->query ;
  51. }
  52. }
  53.  
  54. try
  55. {
  56. $new = new mySQL() ;
  57. $dane = $new->query("INSERT INTO users SET user='boooooo'") ;
  58. echo $dane['user'] ;
  59. }
  60. catch (Exception $error)
  61. {
  62. echo 'Wystąpił błąd. Administracja została już o tym poinformowana. Przepraszamy za kłopoty.' ;
  63. $sError = '<b>Komunikat</b>: '.$error->getMessage().'<br /><b>Plik</b>: '.$error->getFile().'<br /><b>Wiersz</b>: '.$error->getLine();
  64. }
  65.  


Ten post edytował boosik01 30.05.2011, 18:39:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gac3k
post
Post #2





Grupa: Zarejestrowani
Postów: 90
Pomógł: 8
Dołączył: 28.07.2009

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


Ja się jeszcze przyłączę do dyskusji, bo niepotrzebnie starasz się zrobić z psa, hipopotama. Akurat w kwestii obsługi baz danych jest tyle gotowych rozwiązań że niepotrzebne jest pisanie nowych, a tym bardziej kiepskich jak ta wyżej (IMG:style_emoticons/default/smile.gif)

Masz właśnie PDO, ale masz też np. PEAR DB, ADO DB już o wszelakiej maści ORM-ach, bez których w tym momencie nie wyobrażam sobie pracy, nie wspomnę.

Jak już koniecznie chcesz mieć własną klasę to tak jak wspominali koledzy wyżej rozszerzaj to PDO, czy jakąkolwiek inną klasę, ale są one już w sobie tak bogate że ciężko mi sobie wyobrazić jakieś specjalne ficzery które można by dodać.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 16:30