我有一個arduino uno和temp36。我使用Python從arduino串行監視器讀取傳感器值。有用!!不能在MySQL中使用Python插入或創建表格
但我不能在使用Python創建的MySQL表中插入,我不知道爲什麼。我沒有錯誤或警告。
import serial
import time
import MySQLdb
dbhost = 'localhost'
dbname = 'test'
dbuser = 'X'
dbpass = 'Y'
ser = serial.Serial('COM7',9600,timeout=1) # On Ubuntu systems, /dev/ttyACM0 is the default path to the serial device on Arduinos, yours is likely different.
while 1:
time.sleep(1)
the_goods = ser.readline()
str_parts = the_goods.split(' ')
conn = MySQLdb.connect (host = dbhost,
user = dbuser,
passwd = dbpass,
db = dbname)
cursor = conn.cursor()
sql = "INSERT INTO arduino_temp (temperature) VALUES ('%s');" % (str_parts[0])
print "Number of rows inserted: %d" % cursor.rowcount
try:
cursor.execute(sql)
except:
pass
cursor.close()
conn.autocommit=True
conn.close()
print the_goods
我做錯了什麼?
在SQL表這些價值需要在PHP中的情節(實時ploting)
硬件:Windows 7中的Python 2.7,Python編輯:Pyscripter,Arduino的烏諾,MySQL工作臺
您需要從除去'try' /'except'一攬子異常處理開始。你的'autocommit'變化來得太遲而不適用於insert語句。 –
您不應該使用字符串格式化sql-command,而是使用佔位符:'cursor.execute('INSERT INTO arduino_temp(temperature)VALUES(%s)',str_parts [0])' – Daniel
非常感謝您的迴應。我得到一個錯誤:programmingerror:「表test.arduino_temp不存在。」該錯誤的含義是什麼? – user3559628