我如何在python中使用sqlite中的变量进行搜索

时间:2018-03-20 12:13:18

标签: python sqlite

我尝试使用"+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

2 个答案:

答案 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,))

也看看这个答案 Python sqlite3 string variable in execute