实际数据未插入MYSQL数据库中

时间:2019-08-20 05:34:34

标签: python mysql

我正在使用基于生物识别设备的出勤系统。当用户打孔系统时,数据将检索到设备的网关。我使用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()

1 个答案:

答案 0 :(得分:0)

您可能正在寻找这个。您可以使用 '?'作为占位符而不是'%s',它更具动态性。

myCursor = my_sql_connection.cursor()
myCursor.execute('insert into power(id,time) values(?,?);', (userId, enrty_time))
my_sql_connection.commit()