Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Klasa zarządzania bazą danych inna metoda
arkos
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 24.12.2009

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


Witajcie!
W programowaniu obiektowym dopiero zaczynam, już parę klas napisałem i działają wedle moich oczekiwań, ale mam problem z klasą którą sobie stworzyłem odpowiadającą za zarządzanie bazą danych.

Problem polega na tym, iż gdy wykonam np.
  1. $pdo -> numRows('id', '`test` WHERE `name`="ala'"')

Dostaję błąd:
Fatal error: Call to a member function query() on a non-object in pdo_connect.class.php on line 29

Klasa wygląda następująco:
  1. <?php
  2. class PDOconnect{
  3. private $_user;
  4. private $_password;
  5. private $_name;
  6. private $_host;
  7. private $_tpl;
  8. private $_pdo;
  9.  
  10. public function __construct($user, $password, $name, $host, $tpl){
  11. $this->_user = $user;
  12. $this->_password = $password;
  13. $this->_name = $name;
  14. $this->_host = $host;
  15.  
  16. try{ $pdo = new PDO('mysql:host='.$host.';dbname='.$name, $user, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')); }
  17. catch(PDOException $e){
  18. echo 'Blad polaczenia z baza danych!';
  19. }
  20. $this->_pdo = $pdo;
  21. return $pdo;
  22. }
  23.  
  24. public function numRows($count_from, $query){
  25. $sql_numrows = $pdo -> query('SELECT COUNT(`'.$count_from.'`) AS `numrows` FROM '.$query.'');
  26. while($sql_numrows_row = $sql_numrows -> fetch()){
  27. return $sql_numrows_row['numrows'];
  28. }
  29. }
  30.  
  31. public function __destruct(){
  32. $this->_pdo = null;
  33. }
  34. }
  35. ?>

Mogę prosić o jakieś rady co tutaj może być źle, ew. dopracować/poprawić?

Oczywiście przed wykonaniem jakiejś metody wykonuję:
  1. require('pdo_connect.class.php');
  2. $pdo = new PDOconnect(DB_1_USER, DB_1_PASSWORD, DB_1_NAME, DB_1_HOST, $tpl);


Za wszystkie odpowiedzi dziękuję!
Pozdrawiam.

Ten post edytował arkos 7.08.2012, 19:06:48
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.08.2025 - 22:29