KlassenObjekte übergeben

Scorcher

Mitglied
Nach erfolgloser Suche habe ich doch mal ne Frage:

Kann man ein einmal erzeugtes Klassenobject in PHP auch weiterverwenden in anderen Dateien also sprich übergeben
Kann man zu diesem Zwecke auch die Datenbank Verbindung zu MySQL aufrecht erhalten für die Dauer einer Sitzung Ich eröffne nach dem Aufruf von der index.php eine Session welche nach Login einfach nur angepasst wird, und in jeder Funktion wieder aufgenommen wird.
thx for help !
Scorcher
 
WArum willst du eine Verbindung zur DB erhalten, wenn du die erforderlichen Daten eh in einer Session speicherst? Sry ich raff jetzt nicht, was du vor hast :confused:
 
Es is weseentlich perfomrnacefressender, wenn du die Verbindung hälts anstantt sie einfach jedes malk kurz aufzubauen. Ansonsten kannst du kein Objekt an ein anders Script per Werteübergabe übergeben ohne exporter und importer.
 
Das heisst quasi ich müsste in jede Datei bzw. Funktion
$theclass= new Class();
reinschreiben um ein gültiges objekt zu erhalten Sowas wie einen Zeiger gibts wohl nicht

Was ich vorhabe: Die Daten die in der Session gespeichert werden sind nur der Status des Users (Gast, User, Admin) und die Zeit. Ich wollte eigentlcih die DB Verbindung aufrecht erhalten um nicht in jeder Funktion eine neue Datenbank verbindung aufbauen zu müssen.
Code:
class Database
{
	var $uplink;
	var $user;
	var $password;
	var $host;
	var $db;
	
	function Database($dbhost, $dbuser, $dbpassword, $dbname)
	{
		$this->host = $dbhost;
		$this->user = $dbuser;
		$this->password = $dbpassword;
		$this->db = $dbname;    
		$this->connect( );
	}

	/* Verbindet zur datenbank */
	function connect()
	{
		$this->$uplink = @mysql_connect( $this->host, $this->user, $this->password);
		if (!$this->$uplink)
		{
	    	Header("Location: ". $url ."/errors/sqlerr.htm");
	    	die();
		}else{
			//$this->SelectDB();
			return 0;
		}
		return 0;
	}//function
	
	/* Wählt die Datenbank aus */
	function SelectDB()
	{
		if (!mysql_selectdb($this->$db)){
			//Header("Location: ". $url ."/errors/sqlerr.htm");
			die();
		}
	}

	/*Führt ein SQL Query aus */
	function Query($query)
	{
		$this->uplink = mysql_query($query);

	}

}//class
Ich wollte nun Verhindern in jeder Funktion eben das Objekt instanzieren zu müssen sondern es einmal global anlegen und dann verwenden.
rya.
Scorcher
 
Zuletzt bearbeitet:
Du musst es ja nicht in jeder Funktion instanziieren, sondern nur am Anfang Deines Scripts.
Das natürlich bei jedem Seitenaufruf erneut.
Aber das machen alle so.
 
Du kannst auch Objekte in Sessions speichern, um sie für die ganze Session zur Verfügung zu haben. Mit DB-Verbindungen geht das natürlich nicht, weil diese nach Beendigung des Scripts geschlossen werden, sofern sie nicht mit pconnect geöffnet wurden.
 
Zurück