Fragen zu mehreren Klassen ...

firstlord18

Erfahrenes Mitglied
Hallo,


angenommen ich habe 2 Klassen, eine LoginKlasse und eine MySQL Klasse, wie kann ich dann in der LoginKlasse auf eine Instanz der MySQL Klasse zugreifen, um deren Methoden zu nutzten?

2. Und wichtige Frage:

Angenommen ich möchte eine Login Klasse für irgendwelche Leute meiner Homepage oder eines Script archivs schreiben, wie mache ich das am günstigsten mit den MySQL-Querys.
Ich könnte ja meine MySQL Klasse dazupacken und diese verwenden. Wenn jedoch ein anderer schon eine eigene Klasse benutzt, um Querys zu senden etc, dann müsste er ja meine LoginKlasse umändern, oder?

Wäre es eventuell sinnvoll das so zu machen:

PHP:
class login {
 // ...
 function query($sql) 
 {
   / **
 }
 // ..
}

und dann dort entweder eine eigene MySQL Klasse des Users einbauen, oder ebene meine eigene, sodass alle Querys etc meiner LoginKlasse an die klasseninterne Methode query() übergeben werden, un diese dann entscheidet, was damit zu machen ist ... dann müsste der User nur eine Zeile anpassen, um seine eigene Klasse zu verwenden!

Oder macht man das ganz anders?

Danke im vorraus!
 
PHP:
     <?php
     class DataBaseConnect{
     
       /*****************************/
       /*	   instanz Vatiablen 	 */
     
       var $MySQL_User;
       var $MySQL_Pass;
       var $MySQL_Host;
       var $MySQL_DbName;
     
       /*****************************/
 /*			 Konstruktor		 */
     
     	 function DataBaseConnect($user, $pass, $host,$dbname){
  		 $this->MySQL_User		= $user;
  		 $this->MySQL_Pass		= $pass;
   		 $this->MySQL_Host		 = $host;
     		 $this->MySQL_DbName =  $dbname;
     	   
     		 // eventuell noch nen Query übergeben selbes Muster
     	  }
     
     /******************************************************************************/
     	function ConnectToDatase(){
     		   if(mysql_connect.....){
     				 return true; 
     		   }else{
     				 return false; 
     		   }
     	 }
     /******************************************************************************/
     	function Select_Database(){
     
     		if($this->ConnectToDatabase() ){
     			  if(mysql_select_dbname($this->MySQL_DbName)){
     				   return true;
     			  }else{
     				  return false;
     			 }
     		 }else{
 			 echo "Es konnte keine Verbindung zur Datenbank aufgebaut werden";
     		 }
     	 }
     /*********************************************************************************/
        
      // weitere Methoden
     
     	function GetMySQLEntities($query){
      
      	if($this-> Select_Database() ){     
 			$result =  mysql_query($query); 
 			$rows   = mysql_num_rows($result);			   
 
 			for($i = 0 ; $i < $rows; $i ++){ 		  
 				 $Data[$i] = mysql_fetch_assoc($result);
 			} 
 		   return   $Data;
 	 }else{
 		 DIE("Es konnte keine Verbindung hergestellt werden");
      	 }
       }
     } // Klasse schliessen
     ?>

Klasse DataBaseConnect nutzen / einbinden

PHP:
     <?php
     
     // Scrpip DBConnect Klasse einbinden sofern es nicht im selben Script ist
     class Login{
     
       /* Konstruktor und instanz Varis festlegen */
     
      function getUserFromDatabase(){
     
     	 $query = "irgendwas"; 
     	 $getUser = new DatabaseConnect("Fritz" , "0815" , "localhost" ,"Users");
     	  $AbfrageArray =  $getUser->GetMySQLEntities($query);

      }
     }
     ?>

Also ich würde ganz Schlicht eine Methode starten die den MySQL Query abarbeitet welcher im Konstruktor mit übergeben und zugewiesen wurde , als Rückgabewert der Methode würde ich das Array übergeben das vom mysql_query bearbeitet wurde.
 
Zuletzt bearbeitet:
Zurück