Wert aus function zurückgeben. Wo ist mein Fehler?

cofter

Erfahrenes Mitglied
Mein Webspace läuft seit 2 Tagen mit php5 nun möchte ich mir gern eine MySQL-Klasse schreiben.
Natürlich mit OOP. :)
Mein Problem derzeit besteht darin das die function debug nicht den Wert zurück gibt damit ich ihn in function_conn() weiter verwenden kann.
Ich hoffe ihr seht den Fehler und gebt mir noch konstruktive Kritik was ich besser machen könnte und worauf ich in Zukunft noch achten muss.

Danke
Cofter

PHP:
<?php
class MySQL_con
{
	private $user;
	private $pass;
	private $host;
	private $db;
	public $deb;

	function set_sql($host, $user, $pass, $db) 
	{	
		$this->host = $host;
		$this->user = $user;
		$this->pass = $pass;
		$this->db = $db;
	}
	
	function debug($deb)
	{
		$this->debug_o = $deb;
		echo " Debug mode: ".$this->debug_o;
		return $this->debug_o;
	}
	
	function conn_sql()
	{
		if ($connect = (@mysql_connect($this->host,$this->user,$this->pass)))
		{	
			if ($this->debug_o == 1)
				echo "Connection <b>done</b>!<br />";
		}
		else
		{	
			if ($this->debug_o == 1)
				echo "Connection <b>Failed</b>!<br />";
		}
	}
	
	function sel_db()
	{
		if($db_sel = mysql_select_db($this->db))
		{
			if ($this->debug == 1)
				echo "Datenbank "."'<b>".$this->db."</b>'"." wurde ausgewählt";
		}
		else
		{
			if ($this->debug_o == 1)
				echo "Datenbank "."'<b>".$this->db."</b>'"." exisitiert nicht!";
		}		
	}
}
?>
 
Wie soll denn die Funktion debug einen Wert zurückliefern, wenn du diese nicht mal aufrufst?

Wenn es dabei um Fehlerbehandlung geht, solltest du eher Exceptions verwenden.
 
Deine gegenfrage hilft mir leider nicht weiter. :(

Fehlermeldung:
Fatal error: Call to undefined function debugit() in C:\AppServ\www\oop5\index.php on line 18 *confused*
 
Zuletzt bearbeitet:
ich sehe da kein Aufruf von der debug() Function ....
wenn du willst kann ich dir meine MySQL Class posten .. ist auch in OOP
 
Danke thetrue aber ich möchte mich ja selber in OOP einarbeiten.
Fertige Scripte helfen mit da nicht wirklich bei.

An welcher Stelle muss ich die debug(); denn aufrufen?
Er gibt mir immer eine Meldung aus das die function nicht definiert wurde.
 
Zuletzt bearbeitet:
cofter hat gesagt.:
Deine gegenfrage hilft mir leider nicht weiter. :(

Fehlermeldung:
Fatal error: Call to undefined function debugit() in C:\AppServ\www\oop5\index.php on line 18 *confused*
Ich kann bei dir auch keine Funktion sehen, die "debugit()" heisst..

PHP:
$var = new MySQL_con;
$var->debug(1);
$var->conn_sql();
So geht es ohne Probleme..

Ansonsten würde ich dir empfehlen nicht erst ein "echo" und dann ein Rückgabewert in einer Funktion zu machen (zumindest hier ist das nicht sinnvoll). So kannst du nie den Rückgabewert in einer Variablen speichern ohne vorher eine Ausgabe auf dem Bildschirm zu haben.

Und wenn du jetzt in PHP5 Schlüsselwörter wie "private, public oder protected" nutzt, würde ich sie auch gleich auf die Funktionen anwenden und nicht nur auf die Variablen.. KANN man, MUSS man sicherlich nicht.
 
Zuletzt bearbeitet:
auf jeden fall wird die debug Function icht aufgeruffen!

mach mal so:
PHP:
    function conn_sql()
    {
        if ($connect = (@mysql_connect($this->host,$this->user,$this->pass)))
        {    
            if ($connect)
                echo "Connection <b>done</b>!<br />";
        }
        else
        {    
            if (!$connect
                echo "Connection <b>Failed</b>!<br />";
        }
    }
 
thetrue hat gesagt.:
auf jeden fall wird die debug Function icht aufgeruffen!
Innerhalb der Klasse muss er sie ja auch nicht aufrufen.

@cofter
Allerdings hast du jetzt auch nur eine Ausgabe auf dem Bildschirm. Mehr nicht..
 
xCondoRx, mehr wollte ich im Augenblick auch nicht.
Dein Einwurf mit den Schlüsselwörtern werde ich beherzigen. :)
Werde mich die Tage mal bei Hugendubel umschauen und mir ein oder zwei Bücher kaufen.
Buchvorschläge per PN sind willkommen. :)

mfg
Cofter
 
Zurück