Zugreiffen auf Classenmessage - OO

Malaxo

Erfahrenes Mitglied
Ich habe nun Folgende Klasse erstellt:

PHP:
<?php
	
	class MySQL{
		/****** Benötigte Variablen setzten ******/
		var $db_user = ""; // DB-Username
		var $db_password = ""; //-DB Passwort
		var $db_name = ""; // DB-Name
		var $db_host = ""; // DB-Host
		var $error = array(); // Fehlerausgabe Message in Array
		/****** Benötigte Variablen setzten ******/
		
		/****** Funktion für Verbindung ******/
		// @db_user - Datenbankbenutzer übergeben
		// @db_password - Datenbankbenutzerpasswort übergeben
		// @db_name - Datenbankname übergeben
		// @db_host - Datenbankhostename übergeben
		function connect($db_user, $db_password, $db_name, $db_host){
			$this->db_host = $db_host; // Von der Klasse MySQL die Variable "db_host"
			$this->db_name = $db_name; // Von der Klasse MySQL die Variable "db_name"
			$this->db_user = $db_user; // Von der Klasse MySQL die Variable "db_user"
			$this->db_password = $db_password; // Von der Klasse MySQL die Variable "db_password"
			
			// Hilfsvariable Verbindung überprüfen füllen
			$this->connectcheck = @mysql_connect($this->db_host, $this->db_user, $this->db_pass);
			
			// Falls keine Verbindung hergestellt wurde, Hinweis geben und auf false setzten
			if(!($this->connectcheck)){
				$this->error["error"] = true;
				$this->error["message"] = "Es konnte keine Verbindung hergestellt werden.";
				return false;
			}
			// Falls keine Datenbank angegeben wurde, Hinweis geben und auf false setzten
			else{
				if($this->db_name == ""){
					$this->error["error"] = true;
					$this->error["message"] = "Es wurde keine Datenbank angegeben.";
					return false;
				}
				// Falls eine Datenbank angegeben wurde, prüfen ob diese existiert und auf true setzten falls diese existiert
				else{
					$list = mysql_list_dbs($this->connectcheck);
					$db_exist = false;
					while($db = mysql_fetch_object($list)){
						if($db->Database == $this->db_name){
							$db_exists = true;
						}
					}
					// Wenn die Datenbank nicht existiert
					if($db_exist == false){
						// Falls die Datenbank nicht angelegt werden kann, Hinweis geben und false setzten
						if(!(mysql_create_db($this->db_name, $this->connectcheck))) {
							$this->error["error"] = true;
							$this->error["message"] = "Datenbank konnte nicht angelegt werden.";
							return false;
						}
						// Falls die Datenbank nicht ausgewählt werden kann, Hinweis geben und false setzten
						else{
							if(!(mysql_select_db($this->db_name, $this->connectcheck))) {
								$this->error["error"] = true;
								$this->error["message"] = "Datenbank konnte nicht ausgewählt werden.";
								return false;
							}
						}
					}
					// Wenn die Datenbank existiert aber nicht ausgewählt werden kann, Hinweis geben und false setzten
					else{
						if(!(mysql_select_db($this->db_name, $this->connectcheck))) {
							$this->error["error"] = true;
							$this->error["message"] = "Datenbank konnte nicht ausgewählt werden.";
							return false;
						}
					}
				}
			}
		}
		
		/****** Funktion für Verbindung trennen ******/
		function connection_close() {
			// Falls keine Verbindung besteht, Hinweisgeben und false setzten
			if(!($this->connectcheck)) {
				$this->error["error"] = true;
				$this->error["message"] = "Verbindung konnte nicht getrennt werden, da keine besteht.";
				return false;
			}
			// Sonst Verbindung schliessen
			else {
				@mysql_close($this->connectcheck);
				return true;
			}
		}
	}

?>

und so rufe ich es auf:

PHP:
<?php

	// Klasse hinzuladen
	include("connection.class.php");

	// Objekt erzeugen und Konstrukt laden
	$sql = new MySQL("root", "blub", "newsreader", "s");

	// Beenden der Verbindung
	//$sql->connection_close();
	
	$message = $sql->error["message"];
	echo "Meldung".$message;

?>

Ich habe bei dem Host etwas falsches eingegeben um zu prüfen ob es klappt.

Wie bekomme ich nun die Message (Es konnte keine Verbindung hergestellt werden.) aus der Klasse heraus und gebe die bei "Meldung" aus?
 
Funktioniert es denn so?:
PHP:
<?php

    // Klasse hinzuladen
    include("connection.class.php");

    // Objekt erzeugen und Konstrukt laden
    $sql = new MySQL("root", "blub", "newsreader", "s");

    // Beenden der Verbindung
    //$sql->connection_close();
    
    $message = $sql->error;
    echo "Meldung".$message['message'];

?>
 
Erledigt war ein Fehler von mir:)

PHP:
$sql = new MySQL;
	
	$sql->connect("root", "IPA07", "newsreader", "s");

Ich habe auf die Klasse zugegriffen und die Variablen übergeben anstatt auf die Funktion:) haha war wohl verwirrt:)

greezt and thx
 
Zurück