![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 0 Dołączył: 19.02.2004 Skąd: Piaseczno Ostrzeżenie: (0%) ![]() ![]() |
Piszę klasy pracujące na bazie danych i używam ADODB. Wymyśliłem ,że konstruktory tych klas będa pobierać uchwyt do instancji klasy ADOConnection. Problem w tym, że mój pomysł nie działa.
Załóżmy, że mam klase: [php:1:b47094efb6]<?php class Klasa { var $db; function Klasa($db) { $this->db = $db; } fucntion ZrobCosNaBD() { $this->db->Execute($query); } } ?>[/php:1:b47094efb6] Potem w skrypcie includuje potrzebne definicje klas i pisze cos takiego: [php:1:b47094efb6]<?php $conn = &ADONewConnection('mysql'); $conn->PConnect(...); $moja = new Klasa(&$conn); $moja->ZrobCosNaBD(); ?>[/php:1:b47094efb6] i otrzymuję komunikat: Kod Fatal error: Call to a member function on a non-object in /home/roman/gamepress/model/users.class.php on line 21
Prawdopodbnie popełniam gdzieś bład w rozumowaniu. :/ UPDATE: literówka w nazwie konstruktora......... ARGH! ale skoro już napisałem tego posta to jeśli któs ma uwagi do mojego rozwiązania (koncepcji) to bardzo proszę o wypowiedź. |
|
|
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Prosty sterownik:
[php:1:668f086139]<?php // dbdriver.class.php require_once( ADODB_DIR.'adodb.inc.php' ); class AdodbDriver extends StdClass { var $_connection = NULL; var $_dbData = array(); function AdodbDriver() { $this->_dbData = Config::Get('db'); $this->_connection = &ADONewConnection($this->_dbData['TYPE']); $result = $this->_connection->connect($this->_dbData['HOST'].':'.$this->_dbData['PORT'], $this->_dbData['USER'], $this->_dbData['PASS'], $this->_dbData['NAME']); } } ?>[/php:1:668f086139] i uzycie:[php:1:668f086139]<?php require_once( 'dbdriver.class.php' ); $DAO = new AdodbDriver(); $DAO->_dbData = arrayy( 'TYPE' => 'mysql', 'HOST' => 'localhost', 'PORT' => 3306, 'USER' => '', 'PASS' => '', 'NAME' => 'my_db' ); $DAO->GetOne(/*......*/); ?>[/php:1:668f086139] w metodach wymagajacych uzycia DAO wystrczy[php:1:668f086139]<?php global $DAO ?>[/php:1:668f086139] i po kłopocie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 12:32 |