php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.12.2005, 15:08  
Gast
 
Beiträge: n/a
Standard problem mit einer methode in einer klasse

Hallo, m�chte ado benutzen und die methode Execute() in meiner eigenen Klasse verwenden, allerdings kommt bei mir nur folgende Fehlermeldung:

Zitat:
Fatal error: Call to a member function Execute() on a non-object in ... on line 153

Hier ein Beispiel code wie ich es gemacht hab:


Hier wird nur included
Code:
// dependence.inc.php

require_once($strRootpath.'includes/database.inc.php');
require_once($strRootpath.'lib/class1.php');

Hier wird verbunden
Code:
// database.inc.php

require_once($strRootpath.'core/database/adodb.inc.php');

switch($arrSystem['dbType']) {

// mysql support
case 'mysql':
	if($intDbPort == 3306 OR $intDbPort == '') {
		if($booDbPersist) {
			$strDsn = "mysql://$strDbUser:$strDbPasswd@$strDbHost/$strDbName?persist";
		} else {
			$strDsn = "mysql://$strDbUser:$strDbPasswd@$strDbHost/$strDbName";
		}
		
		$objBase = ADONewConnection($strDsn);
		if(!$objBase) {
			exit("Database Error");

		}
		$objBase->debug = $arrSystem['Debug'];
	} else {
		$strDbHost = $strDbHost.':'.$intDbPort;
		
		if($booDbPersist) {
			$strDsn = "mysql://$strDbUser:$strDbPasswd@$strDbHost/$strDbName?persist";
		} else {
			$strDsn = "mysql://$strDbUser:$strDbPasswd@$strDbHost/$strDbName";
		}
		
		$objBase = ADONewConnection($strDsn);
		if(!$objBase) {
			exit("Database Error");
		}
		$objBase->debug = $arrSystem['Debug'];	
	}
	break;
}
Hier eine Beispiel Klasse
Code:
// class1.php

class beispiel
{
    public __construct()
    {
        $strSql = "SELECT * FROM ".$arrSystem['dbPrefix']."user";
        $rs = $objBase->Execute($strSql);
        return $rs;
    }
}
Hier eine Date aus der ich die Methoden aufrufe
Code:
// index.php
$strRootpath = './';

$objBeispiel = new beispiel();
Config Daten sind alle richtig. Verbindung ist auch vorhanden.
Würde ich aus der index.php zb.: $objBase->Execute("..."); machen funktionierts, nur nicht innerhalb einer Klasse, ob es in einer Funktion auch so ist hab ich noch net getestet.

Weiß wer was ich da falsch mache? Danke im voraus.
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.12.2005, 15:45  
Gast
 
Beiträge: n/a
Standard

Bei der Klasse beispiel sehe ich nicht, wo im Konstruktor das Objekt $objBase herkommt.
Dir ist klar, dass ohne weitere Markierung nur die Variablen zwischen public __construct() { und } zur Verfügung stehen?

PHP-Code:
<?php
$value 
13;

class 
Foo
{
    function 
__construct() {
        echo 
__METHOD__' : '$value"
\n"
// Notice: Undefines variable ...
    
}
}

class 
FooEx
{
    function 
__construct($val) {
        echo 
__METHOD__' : '$val"
\n"
;
    }
}


$f = new Foo;
$fx = new FooEx($value);
?>
 
Alt 18.12.2005, 16:02  
Gast
 
Beiträge: n/a
Standard

Hmm dachte es reicht, wenn in der index mit der database.inc.php gelinkt wird, und was m�sste ich jetzt machen damit $objBase auch in der Beispiel Klasse einen Wert hat, auch per Konstruktor �bergen?
 
Alt 18.12.2005, 16:07  
Gast
 
Beiträge: n/a
Standard

Zitat:
BeitragVerfasst am: 18.12.2005, 16:02 Titel:
Hmm dachte es reicht, wenn in der index mit der database.inc.php gelinkt wird
Falsch gedacht. Variablen haben einen Gültigkeitsbereich; ausserhalb dessen sind sie nich sichtbar. http://www.php.net/language.variables.scope

Zitat:
auch per Konstruktor übergen?
Was meinst Du dazu? Was haben Deine Tests ergeben?
Oder andersherum gefragt: Was meinst Du, geht bei $value aber nicht bei $objBase ?
 
Alt 18.12.2005, 16:14  
Gast
 
Beiträge: n/a
Standard

Ah, ok es funktioniert, danke vielmals.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
MySQL - Klasse: Wie da mysql_close benutzen Igäl PHP Tipps 2006 5 01.10.2006 23:09
Problem mit Klasse b++ PHP Tipps 2006 5 26.08.2006 14:22
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
methode in klasse aus einer anderen starten GELight PHP Tipps 2006 10 03.06.2006 11:39
PHP 5 : Methode außerhalb der Klasse definieren Unknown PHP Tipps 2006 9 23.05.2006 11:31
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
Zugriff auf eine Klasse innerhalb einer Funktion -&amp;gt; Fehle PHP-Fortgeschrittene 23 05.02.2006 13:02
[Erledigt] Multidimensionales Array in Klasse Problem PHP-Fortgeschrittene 11 07.01.2006 22:26
Problem mit mysql_fetch_array in Klasse PHP Tipps 2005-2 3 16.08.2005 09:14
Problem beim Registrieren von Session-Variablen in Klasse zwelch PHP-Fortgeschrittene 6 18.10.2004 08:07
Klasse holt sich die Klasse PHP-Fortgeschrittene 9 07.10.2004 11:53
Problem bei einer Klasse mit "hat" beziehung PHP Tipps 2004 4 06.10.2004 21:29
Problem mit optionalen Parametern bei Funktion in Klasse RudiS PHP-Fortgeschrittene 6 24.09.2004 09:03
OOP: offizielle php funktion als methode einer klasse ... PHP Tipps 2004 4 17.09.2004 04:24


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.