[PHP][PEAR] db_common error

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • lawnmower
  • Registratie: November 2000
  • Laatst online: 08-09 12:02

lawnmower

Elvis lives..

Topicstarter
Mensen, ik heb een probleem. Sommige van jullie zijn misschien bekend met het framework PEAR wat standaard bij PHP meegeleverd wordt. Echter, ik krijg dit niet goed werkend, dat wil zeggen ik krijg een foutmelding als ik een functie binnen PEAR aanroep.

Ik wil gebruik maken van de database functie, op het moment dat ik connect krijg ik de volgende foutmelding:

Fatal error: Class db_common: Cannot inherit from undefined class pear in e:\htdocs\pear\pear\DB\common.php on line 35

Ik heb draaien:
Apache 1.3 + PHP 4.3.7 (+ PEAR dus)

php.ini wat betreft include_path:
include_path = ".;e:\htdocs\pear\pear"

Dat include path is goed, als ik include: (DB = package van PEAR)
code:
1
require_once 'DB.php';

Dan krijg ik geen foutmelding, echter als ik een functie van DB.php wil gebruiken bijvoorbeeld:
code:
1
$DB = DB::connect($verbindingsgegevens)

Dan krijg ik de bovenstaande foutmelding.

Ik heb de normale procedure doorlopen van het installeren van PEAR (go-pear.php), alles is ok en lijkt te werken.

Wie kan me helpen?

Acties:
  • 0 Henk 'm!

Verwijderd

code:
1
Cannot inherit from undefined class pear.


De foutmelding lijkt me behoorlijk eenvoudig.

wat je doet is het volgende.

Je benaderd een methode van een object zonder hem in initialiseren.

db::connect();

misschien is het handig om eerste even de class te instancieren voordat je de connect(); method aanroept?

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Verwijderd schreef op 08 juni 2004 @ 17:32:
misschien is het handig om eerste even de class te instancieren voordat je de connect(); method aanroept?
PHP:
1
2
$db = new DB();
$db->connect($verbindingsgegevens);

Acties:
  • 0 Henk 'm!

Verwijderd

Zo ver wilde ik nou ook weer niet gaan in me antwoord :)

Maar idd

$db = new DB;

$db->connect($verbindingsgegevens);

klopt als een dubbeldekker

Acties:
  • 0 Henk 'm!

  • lawnmower
  • Registratie: November 2000
  • Laatst online: 08-09 12:02

lawnmower

Elvis lives..

Topicstarter
Je hoeft in dit geval niet te instantieren. Bij het aanroepen van require_once 'DB.php'; wordt er al een instantie van $db gemaakt.

Het ligt niet aan m'n code, want dezelfde code werkt wel perfect op een andere server. Ik moet iets vergeten in m'n php.ini ofzo, wat ik me ook niet kan voorstellen of ik mis een module ofzo, ik weet het niet.
(heb overigens apache + php al een paar keer nieuw geinstalleerd)

edit: link voor de (werkende) code, waar dus ook niet geinstantieerd wordt. http://www.phphulp.nl/php...b18672b196f725c9dc9be1e55

[ Voor 21% gewijzigd door lawnmower op 08-06-2004 17:49 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ok mijn fout.

Ik was niet goed op de hoogte van deze functie require_once();

Kennelijk ligt het probleem dat hij een overerving probeert uit te voeren op een class die niet bestaat (niet gedefineert is) probleem dat eens te checken.

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Verwijderd schreef op 08 juni 2004 @ 17:32:
code:
1
Cannot inherit from undefined class pear.


db::connect();

misschien is het handig om eerste even de class te instancieren voordat je de connect(); method aanroept?
connect() is een statische method, je hoeft geen instance van de class te maken.
PHP:
1
$DB =& DB::Connect ($Data);

Is het, als mijn geheugen mij niet in de steek laat.

Acties:
  • 0 Henk 'm!

  • lawnmower
  • Registratie: November 2000
  • Laatst online: 08-09 12:02

lawnmower

Elvis lives..

Topicstarter
Ik snap er niks van, voor de zekerheid heb ik die dingen die jullie zeiden ook uitgebreid geprobeerd maar dat werkt ook niet. Bovendien, het is een framework en het zou heel heeel makkelijk te gebruiken moeten zijn zonder al te veel poespas. Ik zou dus niks in die meegeleverde PHP files hoeven te veranderen om toch van de functionaliteit ervan gebruik te maken.

Ik ga zo maar eens formatteren, een heldere blik en een nieuwe start doen soms wonderen ;)
Pagina: 1