Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyświetlanie danych z MySQL, a OOP
spokoloko123
post
Post #1





Grupa: Zarejestrowani
Postów: 114
Pomógł: 12
Dołączył: 15.02.2012

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


Jak poprawnie wyświetlać dane z bazy danych zgodnie z OOP? Czy konstrukcja:
  1. while($this->row = mysql_fetch_accoc){
  2. $zmienna = $this->row['title'];
  3. $zmienna .= $this-row['content'];
  4. }

, a potem wyświetlenie zmiennej jest poprawna w ujęciu programowania obiektowego? Dlaczego, dlaczego nie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
spokoloko123
post
Post #2





Grupa: Zarejestrowani
Postów: 114
Pomógł: 12
Dołączył: 15.02.2012

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


Gdy do wszystkiego podchodzę od strony obiektu mysqli czyli new mysqli(...) to pojawia się problem i nie jestem zdecydowany do do tego jak go rozwiązać.
Wiadomo, że do mysql łączyć się będę tylko jeden raz, ale obiekty stworzone poza klasą nie są w niej dostępne. Więc moje pytanie jest następujące, czy używać sobie takiemo menadżera, który napisałem:
  1. class MySQLiQueryManager
  2. {
  3. private static $instance;
  4. public function __construct()
  5. {
  6. if(!self::$instance)
  7. {
  8. self::$instance = $this;
  9. $connect_args = func_get_args();
  10. if(count($connect_args) != 4)
  11. {
  12. echo "Nowy egzemplarz musi zawierać host, nazwię użytkownika i jego hasło oraz bazę danych.";
  13. }
  14. self::$instance->db = new mysqli($connect_args[0], $connect_args[1], $connect_args[2], $connect_args[3]);
  15. if(mysqli_connect_errno())
  16. {
  17. echo "Błąd połączenia z baza danych: ".mysqli_connect_error();
  18. }
  19. self::$instance->db -> set_charset("UTF8");
  20. }
  21. else {
  22. $connect_args = func_get_args();
  23. if($connect_args)
  24. {
  25. echo "Tylko nowy egzemplarz może zawierać połączenie!";
  26. }
  27. }
  28. }
  29. public function query($query)
  30. {
  31. return self::$instance->result = self::$instance->db->query($query);
  32. }
  33. }
  34.  
  35. new MySQLiQueryManager("localhost", "root", "", "test");
  36.  
  37. class Users
  38. {
  39. public function getUsers()
  40. {
  41. $user = new MySQLiQueryManager;
  42. $result = $user->query("SELECT * FROM users");
  43. while($row = $result->fetch_row())
  44. {
  45. echo "<pre>";
  46. print_r($row);
  47. echo "</pre>";
  48. }
  49. }
  50. }

i wywoływać ten stary egzemplarz MySQLiQueryManager czy może zostać przy strukturze proceduralnej mysqli na potrzeby użycia w klasach?
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: 7.10.2025 - 04:49