我使用的传感器连接到arduino并使用ser.readline()打印传感器和成功的读数。但是当我想使用ser.readline将读取值发送到mysql时。它只传递设备名称和当前时间,并且mysql中显示的读数值为' 0'。这是我的编码。
import time
import serial
import smtplib
import datetime
import MySQLdb
db = MySQLdb.connect("192.168.0.103", "fyp", "123456", "system")
ser = serial.Serial('/dev/ttyACM0', 9600)
while True:
api = ser.readline()
current_time = datetime.datetime.now()
print (api)
sql = "INSERT INTO reading (series_no, time, api) VALUES ('test1', current_time, api)"
data = (current_time, api)
cur.execute(sql)
db.close()
使用%s也不起作用。提前谢谢。
答案 0 :(得分:0)
您没有正确参数化查询。需要解决的几件事:
%s
,没有引号data
元组传递给execute()
修正版:
sql = "INSERT INTO reading (series_no, time, api) VALUES ('test1', %s, %s)"
data = (current_time, api)
cur.execute(sql, data)
db.commit()