2017-08-09 69 views
0

信息:插入統計信息,即溫度值。該信息應該是「臨時」,讓我知道,日誌是關於溫度Python SQL查詢 - 未知列

我試圖從一個Python腳本

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

我獲得以下錯誤執行一個查詢:未知柱溫度在字段列表 地址,組和狀態不會導致錯誤。

我嘗試過其他的可能性爲字符串解析(我想這是錯誤?),但不能得到它的工作。在此先感謝

+0

你對數據庫連接有什麼用?所有實現[Python數據庫API](https://www.python.org/dev/peps/pep-0249/)的庫都應該爲您進行轉義。您不應該自行構建查詢。 – Kendas

+0

考慮使用準備語句http://zetcode.com/db/mysqlpython/ – damians

回答

1

的問題是,你的查詢,SQL不解釋temp作爲該字符串「TEMP」,但作爲一個變量命名temp

如果打印sql,你會得到下面的查詢:

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

而你想這個查詢:

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

(注意周圍temp引號)

只是改變你的Python代碼在正確的位置加上引號:

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

謝謝,這解決了我的問題。 –