hy...
hat sich erledigt....
es lag einer simple übergabe eines ""...weil ich alle optionen auf false gesetz hab...
jetzt funzt auch alles wunderbar...
besten dank nochmal für deine Hilfe...
PS: die sql_files sind aus dem PHPBB2 Board zufinden unter ./db/
kannst dir ja mal anschauen is ne geile sache...um die eingenen scripte gleich für mehrere Datenbank Systeme verfügbar zumachen...
ist auch alles GNU Public !!!
die mysql.php hab ich noch einwenig modifiziert...und da lag auch der Fehler...
sie unterstützt jetzt auch die zusätzlich option für mysql....
cya Jointy
class in class benutzen
Einklappen
X
-
ich würde was in der art erwarten ...
PHP-Code:
function .....() {
$this->db = new sql_db(....);
$connect_id = this->db->connect();
if (!$connect_id) {
.....
}
}
Einen Kommentar schreiben:
-
jetzt wär' schon zu wissen, was in der Klasse "sql_db" steht.
was ist denn db_connect_id?
muss ja eine Instanzvariable der Klasse sein!
Einen Kommentar schreiben:
-
hab gerade gemerkt, dass du die Instanz scheinbar nicht ausserhalb der Funktion erzeugen kannst, also :
PHP-Code:class A {
var $cl;
function A() {
$this->cl = new B();
}
function f1() {
$this->cl->setVar($var);
}
function tralala() {
echo $this->cl->var;
}
}
class B {
var $var = "class B var";
function setVar($var) {
$this->var = $var;
}
}
EDIT:
sooo, nochmal schön gemacht.Zuletzt geändert von graf; 02.07.2003, 02:55.
Einen Kommentar schreiben:
-
hy...
ebend das geht nicht....genau so hab ich es benutzt !!!
cya
PHP-Code:
// File: index.php
include("./includes/config.php");
require("./includes/dbum_class.php");
require("./includes/db/".$sql_layer.".php");
$dbum = new dbum( $sql_layer , $usetbl , $debug );
// Hier wird jetzt die 2 Class initalisiert
if( !$dbum->dbum_connect( $addr , $user , $pass , $usedb , $options ) )
{
die(); // bla bla bla
}
und so weiter
PHP-Code:
// File: dbum_class.php
class
{
var $db;
var $sql_layer;
var $use_tbl;
var $debug;
function dbum( $sql_layer , $usetbl , $debug = FALSE )
{
$this->sql_layer = $sql_layer;
$this->use_tbl = $usetbl;
$4this->debug = $debug;
}
function dbum_connect($addr,$user,pass,$usedb,$options = array() )
{
// Dieser Schritt klappt noch !!!
$this->db = new sql_db($addr,$user,$pass,$usedb,$options);
// Und hier kommt obwohl die Verbindung steht immer FALSE raus....das heisst er greift nicht auf die var zu... warum ???
if( !$this->db->db_connect_id )
{
print_r($this->db->sql_error());
return FALSE;
}
return TRUE;
}
Zuletzt geändert von Jointy; 02.07.2003, 02:49.
Einen Kommentar schreiben:
-
wenn eine Instanz der Klasse B in einer Methode von Klasse A erzeugt wird, dann kannst du diese Instanz auch nur in der Methode (Methode = Funktion) nutzen.
Willst Du sie auch ausserhalb der Methode benutzen, musst du ein Objekt der Klasse B als Instanzvariable von Klasse A haben.
kleines Beispiel?
PHP-Code:class A {
function f1() {
$var = "irgendwas";
$cl = new B();
$cl->setVar($var);
}
function tralala() {
echo $cl->var; // GEHT NICHT
}
}
class B {
var $var;
}
ABER:
class A {
var $cl = new B();
function f1() {
$this->cl->setVar($var);
}
function tralala() {
echo $this->cl->var; // SOLLTE GEHEN
}
}
class B {
var $var = "class B var";
}
Einen Kommentar schreiben:
-
class in class benutzen
hy...
ich hab folgenes Problem !!!
ich hab mir 2 klassen geschrieben die klasse(a) ruft klasse(b) in function 1 von klasse (a) auf...und setzt das objekt auf eine oeffentlich variable in klasse(a)...
der witz das scheint zu gehen aber versuche ich nun eine function oder variable in klasse(b) auf zu rufen klappt es nicht !!!
PHP-Code:
// leider geht diese variante nicht !!!
$this->var->func();
$this->var->var;
thx JointyStichworte: -
Einen Kommentar schreiben: