我正在使用基于生物识别设备的出勤系统。当用户打孔系统时,数据将检索到设备的网关。我使用Pycharm来获取设备数据。通常,数据将显示在控制台中,但是当我尝试在MYSQL中插入数据时,数据将无法正确插入。我只想存储序列号,用户ID,出勤时间。但是在mysql数据库中插入值之后,用户ID无法正确存储。给出以下MYSQL数据库表数据:
Serial no User ID Attendance time 1 1 2016-10-31 12:55:19 2 1 2016-10-24 11:53:34 3 1 2016-10-24 12:06:1 4 1 2016-10-24 12:09:48 5 2 2016-10-24 12:09:45 6 2 2016-10-24 12:09:47
此用户ID无效。我的设备具有一些用户ID,例如:(999,1,4,8,8) 我不明白这个问题。给出以下代码:
conn = zk.connect()
attandance= conn.get_attendance()
for data in attandance:
userId= data.user_id
enrty_time= data.timestamp
print("User id:", userId)
print("Punch:", data.punch)
print("Entry time:", data.timestamp)
print("Status:",data.status)
my_sql_connection = pymysql.connect(host="localhost", user="root", passwd="", db="bio")
myCursor = my_sql_connection.cursor()
sql = """INSERT INTO power(id,time) VALUES('%s','%s')""" % (userId,enrty_time)
myCursor.execute(sql)
print("insert successfully")
my_sql_connection.commit()
my_sql_connection.close()
答案 0 :(得分:0)
您可能正在寻找这个。您可以使用 '?'作为占位符而不是'%s',它更具动态性。
myCursor = my_sql_connection.cursor()
myCursor.execute('insert into power(id,time) values(?,?);', (userId, enrty_time))
my_sql_connection.commit()