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();
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?
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.
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