Hallo zusammen,
ich habe bei 1&1 mehrere Datenbanken angelegt.
Jetzt möchte ich auf einer Webseite ausgeben, wie voll (also wieviel MB) die jeweiligen die Datenbanken sind.
Wenn ich das richtig sehe, muss ich zu jeder DB eine Verbindung aufbauen, die Größe auslesen und dann die Verbindung zur DB schließen.
Für die erste DB funktioniert das auch. doch bei den anderen kommt nur noch die information_scheme der ersten DB zurück.
Kann mir bitte jemand von euch einen Tipp geben, wo mein Fehler / Denkfehler ist?
vielen DAnk!
Wenn ich mir die Werte ausgeben lasse dich zur Datenbankverbindungs-Aufbau benutze, sind es jedes Mal die richtigen. (also die Unterschiedlichen für die versch. Datenbanken)
Die Variblen mit dem Zähler hatte ich zuerst als "normale" Varible ohne Zähler. Da das nicht funktioniert hat, dachte ich mir, vielleicht geht es ja, wenn die Variblen unterschiedlich heißen. Hat aber leider auch nichts geändert.
Hier noch die Skripte:
Funktion in meiner Datenbankklasse:
Danke für eure Hilfe
lg Nadja
ich habe bei 1&1 mehrere Datenbanken angelegt.
Jetzt möchte ich auf einer Webseite ausgeben, wie voll (also wieviel MB) die jeweiligen die Datenbanken sind.
Wenn ich das richtig sehe, muss ich zu jeder DB eine Verbindung aufbauen, die Größe auslesen und dann die Verbindung zur DB schließen.
Für die erste DB funktioniert das auch. doch bei den anderen kommt nur noch die information_scheme der ersten DB zurück.
Kann mir bitte jemand von euch einen Tipp geben, wo mein Fehler / Denkfehler ist?
vielen DAnk!
Wenn ich mir die Werte ausgeben lasse dich zur Datenbankverbindungs-Aufbau benutze, sind es jedes Mal die richtigen. (also die Unterschiedlichen für die versch. Datenbanken)
Die Variblen mit dem Zähler hatte ich zuerst als "normale" Varible ohne Zähler. Da das nicht funktioniert hat, dachte ich mir, vielleicht geht es ja, wenn die Variblen unterschiedlich heißen. Hat aber leider auch nichts geändert.
Hier noch die Skripte:
PHP-Code:
////////////////////////////
//Datenbanken aus DB holen
////////////////////////////
$databases=new dba($dbDsn, $user, $passw, $dbOptions);
$datab=$databases->selectDBs();
//////////////////////
//ermittelt DB-Größen
////////////////////
$dbs=new dba($dbDsn, $user, $passw, $dbOptions);
$i=1;
foreach($datab as $data) {
//neue Verbindung aufbauen
$pwdb=constant('PASSW'.$data->id);
$dbDsndb="mysql:host=".$data->host.";dbname=".$data->db.";charset=utf8";
${'dbconsize'.$i}=new dba($dbDsndb, $data->user, $pwdb, $dbOptions);
$dbsizeall[]=${'dbconsize'.$i}->DBsizeall('dbconsize'.$i);
${'dbconsize'.$i}=NULL;
$i++;
}
PHP-Code:
public function DBsizeall($wert){
$stmt = $this->prepare("SELECT table_schema '$wert', SUM( data_length + index_length) / 1024 / 1024 'db_size_in_mb' FROM information_schema.TABLES GROUP BY table_schema ;");
try{
$res=$stmt->execute();
$erg=$stmt->fetch();
return $erg;
}catch(Exception $ex)
{
return "Es konnten keine Dbs gefunden werden";
}
}//Ende DBsizeall
lg Nadja
Kommentar