Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazywanie uchywtu do Adodb
Forum PHP.pl > Forum > PHP
rmn
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ź.
scanner
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.
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.