• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

MySQL Live oder SQL in Class

bosko

Member
Guten Morgen,

ich habe mir ein kleines Demon Script per PHP erstellt, was auf dem Server dauerhaft läuft.
Alles soweit ohne Probleme, nun hatte ich MySQL hinzugefühgt um bestimmte CMD aufrufe
in der Datenbank Speichert, wie ich gesehen habe, läuft ja die Verbingung zur DB auch Dauerthaft.
Leider bricht diese hin und wieder zusammen und ich muss den Demon neustarten...
Eine überlegung ist, die Verbindung bei dem Aufrufen zu starten und da hänge ich fest, da diese
Aufrufe in Class eingeteilt sind und diese haben schon eine Vererbung von einer haupt Class.

In dem Hauptscript wir die DB wie folgt gestartet:

PHP:
$db = new db("localhost", "dbuser", "pass", "db");

In der Class Datei sieht es wie folgt aus:

PHP:
class Plugin extends basePlugin {
	private $startTime;

	public function __construct($config) {
		$this->startTime = new DateTime();
		global $db;
		$this->db = $db;
	}
	
	public function onMessage($from, $msg) {
		if($msg=='0110') {
			sendMessage($from, "ein Text der an die CMD gesendet wird");
			$this->db->query("INSERT INTO mysql (msg) VALUES ('ein Text der in die MySQL geschrieben wird')");
		}
	}
}

Dies eine zusammengefasste Version meines Scriptes....
Meine überlegung ist, erst wenn, wie hier '0110' aufgerufen wird, baut das Script die
Verbingung zu MySQL auf, setzte ich 'new db' u.s.w. dort rein, ist klar, kommt es zur
Fehlermeldung, das er keine VB aufbauen kann.

Hat da jemand eine Idee oder Lösung für mich.


Gruß Bosko
 
Meine überlegung ist, erst wenn, wie hier '0110' aufgerufen wird, baut das Script die
Verbingung zu MySQL auf
Kannst du machen, bei jeder Anfrage die Verbindung neu aufbauen. Ob das Sinn macht, hängt von vielen Faktoren ab wie die Häufigkeit der Anfragen etc. Der Aufbau einer Verbindung zur DB braucht relativ viel Zeit. Du must dann aber auch die Verbindung wieder schließen, damit nicht nach kurzer Zeit deine Grenze für aktive Verbndungen erreicht wird und es zum Fehler kommt.

setzte ich 'new db' u.s.w. dort rein, ist klar, kommt es zur
Fehlermeldung, das er keine VB aufbauen kann.
Ist nicht klar, da die konkrete Fehlermeldung dein Geheimnis ist. Helfen wird schwer sein, da auch nicht bekannt ist was in der Klasse basePlugin getrieben wird.

Zum Code oben:
Verzichte auf global. Das macht nur Probleme.
 
... und was macht die Klasse db genau?
Kann die einen reconnect machen, wenn die Verbindung abgebrochen wurde?
 
Zurück
Oben