2017-08-09 1 views
0

Information: Einfügen einer Statistik, das ist ein Temperaturwert. Die Informationen sollten „temp“ sein, so dass ich weiß, dass das Protokoll über die Temperatur nächste Abfrage von einem Python-Skript ausführen Ich versuchePython SQL Query - unbekannte Spalte

ist

info = "temp" 
sql = 'insert into stat_bus (addr, grp, info, status) 
VALUES (' + address + ', ' + group + ', ' + info + ', ' + status + ')' 

bekomme ich folgende Fehlermeldung: Unbekannte Säulentemperatur in Feldliste Die Adresse, Gruppe und Status geben keine Fehler.

Ich habe andere Möglichkeiten für das String-Parsing ausprobiert (ich denke, das ist der Fehler?), Aber es funktioniert nicht. Vielen Dank im Voraus

+0

Was verwenden Sie für die Datenbankverbindung? Alle Bibliotheken, die das [Python Database API] (https://www.python.org/dev/peps/pep-0249/) implementieren, sollten die Flucht für Sie übernehmen. Sie sollten die Abfrage nicht selbst erstellen. – Kendas

+0

Verwenden Sie vorbereitete Anweisungen http://zetcode.com/db/mysqlpython/ – damians

Antwort

1

Das Problem ist, dass mit Ihrer Anfrage, wird SQL nicht temp als der Zeichenfolge „temp“, sondern als Variabletemp genannt zu interpretieren.

Wenn Sie sql drucken, erhalten Sie die folgende Abfrage erhalten:

insert into stat_bus (addr, grp, info, status) VALUES ("something", "something", "temp", "something") 

(Man beachte die Anführungszeichen um temp)

Gerade Änderung:

insert into stat_bus (addr, grp, info, status) VALUES (something, something, temp, something) 

Während Sie diese Abfrage wollen würde Ihr Python-Code, indem Sie die Anführungszeichen an den richtigen Stellen hinzufügen:

info = "temp" 
sql = 'insert into stat_bus (addr, grp, info, status) 
VALUES ("' + address + '", "' + group + '", "' + info + '", "' + status + '")' 
+0

Danke, das hat mein Problem gelöst. –