Ich stehe vor folgendem Problem:
Ich will Daten von User welche auf einen StreamServer zugreifen in einer MySQL Datenbank loggen. Die Datenbank läuft zZ auf dem gleichem Rechner wie der Server. Ich habe zum Testen folgendes kurze Skript geschrieben:
Code: Alles auswählen
import MySQLdb
def test():
conn = MySQLdb.connect (user = "root",
host = "localhost",
passwd = "*******",
db = "kompassS")
ip='127.0.0.1'
cursor = conn.cursor ()
cursor.execute("INSERT INTO `server_log`(`status`, `ip`, `title`) VALUES ('v',%s,'NANA')",ip)
conn.commit()
cursor.close ()
test()
Nun das Problem. Mein StreamServer sammelt Daten vom User und ruft am Ende des Streams eine Funktion (write_to_log()) in einem von mir gschriebenen Modul auf, welche genau so aussieht wie die eben beschriebene:
Code: Alles auswählen
import MySQLdb
import threading
from _threading_local import local
mydata = threading.local()
flag = threading.Event()
def write_to_log():
# Verbindung zur Datenbank aufbauen
conn = MySQLdb.connect (user = "root",
host = "localhost",
passwd = "mysql",
db = "kompassS")
cursor = conn.cursor ()
# Test: Schreiben in Tabelle
cursor.execute("INSERT INTO `server_log`(`status`, `ip`, `title`) VALUES ('v',1234,'NANA')")
# Verbindung beenden
cursor.close ()
conn.commit
conn.close ()
Nun erscheint kein Einrtag mehr in der Datenbank. Die Funktion wird aufgerufen, dies habe ich mittels print Ausgaben überprüft. Es wird jedoch etwas in der Datenbank gemacht, weil wenn ich danach wieder mein oberesTestskript ausführe, sehe ich dass sich der PRIMARYKEY erhöht hat. Also zB:
Ausführen des Testskripts:
=> Eintrag in die Datenbank gelingt, PRIMARYKEY= 1
Ausführen von Server und Modulfunktion
=> Kein EIntrag wird gemacht!
Ausführen des Testskripts:
=> Eintrag in die Datenbank gelingt, PRIMARYKEY= 3
Ich hoffe ihr versteht das Problem und dass es vielleicht jemanden gibt der es mir erklären kann!
Vielen Dank!