webForumDet fria alternativet

Klasser blir inte individuella!

PHPur PHP

6 svar · 423 visningar · startad av Wickmark

Medlem sedan juli 2003162 inlägg
Frågan#1

Hej hej!
Här sitter man, vid juletid, och bedrövar sig. På något konstigt vänster så vägrar mina klasser, eller i alla fall mina databasklasser, att bli individuella för just variabeln!
Detta betyder att om man har två stycken variabler som var sin databasklass, och stänger den ena, så stängs den andra också (se bihang).

Vad gör jag fel? Är det ett konfigurationsfel?

MVH
Wickmark

Databasklassen:

	 class DB {
	 
	    var $conn; 
	   
	     function DB() {
	        
         }
		 
	     function connect() {
			 $this->conn = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD);
			 
			    if(!$this->conn) 
                   return false;
				   
		     return true;		   
		 }
		
		 function use_database($db) {
		     $result = @mysql_select_db($db, $this->conn); // @ = ignorera felen!
			    return($result);
		 }		
		 
		 function execute($sql) {
		     $result = @mysql_query($sql, $this->conn); 

				   return($result);
		 }
		 
		 function result($from, $offset) {
		     return(mysql_result($from, $offset));
		 }
		 
		 function clear_table($table) {
		     $result = @mysql_query("TRUNCATE TABLE `" . $table . "`;", $this->conn);
			    return($result);  
		 }
		 
		 function get_error() {
		     return(mysql_error($this->conn));
		 }
		 
		 function found_rows() {
		     return((mysql_affected_rows($this->conn) == 0) ? false : true);
		 }
		 
		 function disconnect() {
		     $this->conn = mysql_close($this->conn);
		 }
	 }

Exempelkod:

   $db1 = new DB();
   $db2 = new DB();
     
      // Öppna databasen 
      $db1->connect();
      $db2->connect();

      // Stäng databasen ( den första )
      $db1->disconnect();
      // Stäng den andra databasen (vilket går åt helvete då databasen redan är stängd!)
      $db2->disconnect();
usch.jpg
Medlem sedan apr. 2002830 inlägg
#2

Jag vet inte, men det verkar ju som om du öppnar två connections till SAMMA databas, inte två olika. Vilket säkert skulle kunna innebära att då du tycker att du stänger ner en av kopplingarna, så stänger PHP ner kopplingen helt och hållet...

Varför vill du förresten öppna två kopplingar till samma databas? Eller är det jag som misförstår din kod?

// Nippe

Medlem sedan juli 2003162 inlägg
#3

Koden ovan var bara ett exempel.

I 'verkligheten' använder jag, eller använde jag, en databasåtkomst i olika funktioner som kallades. Det som irriterade mig var att när jag stängde databasen i funktionen, så stängdes alla databasklasser.

Medlem sedan okt. 2004392 inlägg
#4

EDIT: Löste det ;)

Medlem sedan juli 2003162 inlägg
#5

Kan du möjligtvis dela med dig din lösning? :)

Medlem sedan okt. 2004392 inlägg
#6

Hehe, nej jag undrade hur man hämtar data från databasen, men jag löste det... tyvärr så var det inte din fråga jag löste.

Medlem sedan mars 20038 inlägg
#7

Måste man inte spara anslutningne i en variabel typ:

$db1 = new DB();

$db2 = new DB();

  // Öppna databasen 

  $connectt1 = $db1-\>connect();

  $connect2  = $db2-\>connect();

  // Stäng databasen ( den första )

  $db1-\>disconnect($connect1);

  // Stäng den andra databasen (vilket går åt helvete då databasen redan är stängd!)

  $db2-\>disconnect($connect2);

fast det blir juy iofs inte riktigt som du vill göra

141 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
138 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)