HI Leute
Ich hab ein Problem, und zwar kann ich mit Python Daten von meiner MySQL-Datenbank holen und damit dann arbeiten, allerdings möchte ich die gewonnenen Ergebnisse in die Datenbank eintragen. Kann mir wer helfen?
Und noch eine Frage hab ich. Wie funktioniert das mit einer endlos Schleife?
Bitte in der letzten Zeile das Prozentzeichen durch ein Komma ersetzen. Das Einsetzen von Werten in eine SQL Anfrage sollte man dem Datenbankmodul überlassen um "SQL-Injections" zu vermeiden.
import MySQLdb
import os
verbindung=MySQLdb.connect(host='localhost',db='watchdog',user='root',passwd='test')
c=verbindung.cursor()
c.execute('USE watchdog')
anz=c.execute('SELECT * FROM watchdog')
print anz
x=raw_input("Bitte gewünschten Port eingeben:")
print x
anfrage1='''
SELECT Reset
FROM watchdog
WHERE Port='''+x
c.execute(anfrage1)
a=c.fetchone()
print a
while True:
try:
if a == ('0',):
anfrage2='''
SELECT IP1,IP2,IP3,IP4
FROM watchdog
WHERE Port='''+x
c.execute(anfrage2)
var1=c.fetchone()[0]
c.execute(anfrage2)
var2=c.fetchone()[-3]
c.execute(anfrage2)
var3=c.fetchone()[-2]
c.execute(anfrage2)
var4=c.fetchone()[-1]
ip=var1+"."+var2+"."+var3+"."+var4
print ip
pi=os.system ("ping "+ip)
print pi
if pi == 0:
c.execute("""UPDATE watchdog
SET Status = '1'
WHERE Port="""+x)
print 'ok' #ping=0
sleep(2)
else:
c.execute("""UPDATE watchdog
SET Status = '2'
WHERE Port="""+x)
print 'server down' #ping=1
#wenn der Server down ist soll er über die Serielle Schnittstelle neu gestartet werden.
break
else:
c.execute("""UPDATE watchdog
SET Status = '3', Reset = '0'
WHERE Port="""+x)
print 'server neustart'
break
except ValueError:
print "Bitte nochmal eingeben."
folgende Frage: Ich möchte nachdem gepingt wurde möchte ich wieder auf den Anfang zu while True zurück. Nur wie geht das????