将元组与int进行比较

时间:2015-02-20 13:38:53

标签: python sqlite

我正在尝试在系统中创建一个用户输入密钥的时钟,并将其与sqlite数据库进行比较。

我遇到的问题是将输入的密钥与数据库中输入的密钥进行比较。我假设这是因为sqlite查询返回一个元组。我认为将它放入for循环可以解决它。虽然他们匹配,但他们回来是假的。

import sqlite3 as lite

conn = lite.connect('attendance.db')
c = conn.cursor()

r = raw_input('Awaiting Key: ')
keyCode = str(int(r))

q = c.execute("SELECT key FROM employees WHERE key = '%s'") % keyCode

for i in q:
    if i == r:
        print 'open'
    else:
        print 'closed'

2 个答案:

答案 0 :(得分:0)

q = c.execute("SELECT key FROM employees WHERE key = '%s'") % keyCode

如果我纠正,这是错误的。 你需要这样做:

c.execute("SELECT key FROM employees WHERE key =?",  (keyCode,))
c.fetchone()

返回您需要的值。

答案 1 :(得分:0)

不要使用字符串插值将数据插入查询。查询参数更有效,并且不易受到注入攻击。

q = c.execute("SELECT key FROM employees WHERE key = ?", (keyCode,))