Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Klasa PHP do obsługi mySql
Forum PHP.pl > Forum > Przedszkole
Woytek950
Witam. Napisałem klasę do obsługi bazy mysql i chciał bym zasięgnąć Waszej opini co poprawić, co zmienić i czy Waszym zdaniem taka klsa jest logiczna.
przykład użycia:

plik mysql.class.php
  1. <?php
  2. // Klasa do obsługi bazy danych mysql
  3. // Nazwa klasy: MySql;
  4. // Plik z klasą: mysql.class.php
  5.  
  6. class MySql
  7. {
  8. public function MySql($host, $user, $pass, $db)
  9. {
  10. @mysql_connect($host,$user,$pass) or die("<div>Blad polaczenia MySql.</div><br/><i>".mysql_error()."</i>");
  11. @mysql_select_db($db) or die("<div>Blad wyboru bazy MySql.</div><br/><i>".mysql_error()."</i>");
  12. }
  13.  
  14. public function getRows($query)
  15. {
  16. $qu = mysql_query($query) or die("<div>Blad zapytania MySql.</div><br/><i>".mysql_error()."</i>");
  17. while($row = mysql_fetch_assoc($qu))
  18. {
  19. $arr[] = $row;
  20. }
  21. }
  22.  
  23. public function getNumRows($query)
  24. {
  25. $qu = mysql_query($query) or die("<div>Blad zapytania MySql.</div><br/><i>".mysql_error()."</i>");
  26. return mysql_num_rows($qu);
  27. }
  28. // Koniec klasy
  29. }
  30.  
  31. ?>
  32.  

plik index.php
  1. $mysql = new MySql('localhost','root','krasnal','cms');
  2. $tpl->assign("jakaspetla", $mysql->getRows('SELECT * FROM menu'));
  3.  

plik index.tpl
  1. {loop name="jakaspetla"}
  2. <a href="{$value[alias]}">{$value[name]}</a><br />
  3. {/loop}


erix
  1. getRows niczego nie zwraca
  2. błędy wracają do gości
  3. wyciszanie błędów zamiast logowania
  4. zliczasz rekordy pamięciożerną metodą
  5. brak wyjątków


Chyba nie ma sensu tego używać...
Woytek950
Poprawiłem troche. Chciał bym poinformować że to moja pierwsza klasa...


getRows niczego nie zwraca - było dobrze tylko nie skopiowalem.
błędy wracają do gości - w jaki sposób to z mienić?
wyciszanie błędów zamiast logowania - w jaki sposób to zmienić?
zliczasz rekordy pamięciożerną metodą - w jaki sposób to zmienić?
brak wyjątków - w jaki sposób to zmienić?

mam zamiar ją rozbudowac, to narazie początek
erix
Cytat
getRows niczego nie zwraca - było dobrze tylko nie skopiowalem.

Nadal nie jest dobrze.

Cytat
błędy wracają do gości - w jaki sposób to z mienić?

Poczytaj o set_error_handler albo napisz odpowiednie metody logujące błędy.

Cytat
wyciszanie błędów zamiast logowania - w jaki sposób to zmienić?

Małpy dopisałeś bezmyślnie?

Cytat
zliczasz rekordy pamięciożerną metodą - w jaki sposób to zmienić?

Poczytać o funkcjach agregujących w SQL.

Cytat
brak wyjątków - w jaki sposób to zmienić?

Poczytać i zrozumieć, po co są wyjątki.

Cytat
mam zamiar ją rozbudowac, to narazie początek

Tylko czy jest sens pisać N-ty raz to samo...?
Woytek950
Tak, ponieważ się ucze i to moje pierwsze kroki w OPP.
zend
Ta klasa praktycznie nic nie wnosi do kodu, jedynie dodatkową niepotrzebną abstrakcję. Dorzuć do niej metody typu insert, update, delete, select, to już będzie lepiej
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.