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?
MySQL-Datenbank
- Mawilo
- User
- Beiträge: 452
- Registriert: Sonntag 22. Februar 2004, 10:58
- Wohnort: Sachsen
- Kontaktdaten:
Hallo,
hier ein kleines Beispiel, wie Daten in eine MySQL-Datenbank geschrieben werden:
Eine Endlosschleife kannst du mit while erzeugen:
Stephan
hier ein kleines Beispiel, wie Daten in eine MySQL-Datenbank geschrieben werden:
Code: Alles auswählen
import MySQLdb
conn = MySQLdb.connect(db='Datenbank')
cursor = conn.cursor()
cursor.execute("""INSERT INTO Tabelle
(spalte1,spalte2,spalte3)
values('%s','%s','%s')"""%(wert1, wert2, wert3)
Code: Alles auswählen
from time import sleep
while True:
print 'läuft'
sleep(1)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Eigentlich hat das SQL-Zeug mit Python nichts zu tun. Deswegen empfehle ich dir den SQL Course.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.Stephan hat geschrieben:Code: Alles auswählen
import MySQLdb conn = MySQLdb.connect(db='Datenbank') cursor = conn.cursor() cursor.execute("""INSERT INTO Tabelle (spalte1,spalte2,spalte3) values('%s','%s','%s')"""%(wert1, wert2, wert3)
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi KiS!KiS hat geschrieben:und ich möchte jetzt nur für den Port 4 zum Beispiel im STatusfeld eine 1 haben wie mach ich das?
Hier die SQL-Anweisung, die den Status auf 1 setzt. Das macht sie mit allen Zeilen in denen die Bedingung ``Port = 4`` zutrifft.
Code: Alles auswählen
UPDATE
tabellenname
SET
Status = 1
WHERE
(Port = 4)
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Code: Alles auswählen
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."