我尝试使用"+uid+"
在一个SQL查询中插入变量,但似乎没有考虑该变量:
import datetime
import sqlite3 as lite
import sys
con = lite.connect('user.db')
uid = raw_input("UID?: ")
time = datetime.datetime.now()
with con:
cur = con.cursor()
cur.execute("SELECT Name FROM Users WHERE Id = "+uid+";")
rows = cur.fetchall()
for row in rows:
print row
print time
答案 0 :(得分:4)
不要在SQL上使用字符串操作。它可能导致sql注入。
更改
cur.execute("SELECT Name FROM Users WHERE Id = "+uid+";")
to(使用prepared statements
)
cur.execute("SELECT Name FROM Users WHERE Id=?;", (uid,))
答案 1 :(得分:1)
cur.execute("SELECT Name FROM Users where %s=?" % (Id), (uid,))