Python 如何使用整数id变量在数据库中搜索?

Python 如何使用整数id变量在数据库中搜索?,python,python-3.x,database,sqlite,tkinter,Python,Python 3.x,Database,Sqlite,Tkinter,我正在开发一个CRUD图形界面 def crudRead(): myConex=sqlite3.connect("Users") myCursor=myConex.cursor() myCursor.execute("SELECT*FROM USER_DATA WHERE ID="+id_number.get()) theUser=myCursor.fetchall() for user in theUser: id_number.set(usua

我正在开发一个CRUD图形界面

def crudRead():
myConex=sqlite3.connect("Users")
myCursor=myConex.cursor()
myCursor.execute("SELECT*FROM USER_DATA WHERE ID="+id_number.get())
theUser=myCursor.fetchall()
for user in theUser:
    id_number.set(usuario[0])
    username.set(usuario[1])
    password.set(usuario[2])
    biographyText.insert(1.0, usuario[3])

myConex.commit()

错误: myCursor.execute(“从用户数据中选择*,其中ID=“+ID\u number.get())

TypeError:只能将str(而不是“int”)连接到str


如何通过id进行搜索而不出现错误?
我尝试设置id_number.get(),但它没有返回任何错误,但程序无法正常工作,因为数据库中的id列有整数值。

使用f字符串可能会有所帮助

myCursor.execute(f'SELECT*FROM USER_DATA WHERE ID={id_number.get()}')
使用占位符:

myCursor.execute(“从用户数据中选择*,其中ID=?”,(ID\u number.get(),)

请参阅有关如何为SQL查询提供参数的说明。这也比生成查询字符串更安全。生成这样的查询存在SQL注入风险,这是当今系统被黑客攻击的主要方式之一。