PyMysqlP公司ython:How to 将两个输入与sql查询关联?

2024-09-22 16:29:18 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我的问题是这样的:

Actor1 Actor2 Movies
stef   bill   a
bill   stef   b
nick   nick   c
stef   stef   d
nick   bill   e
bill   nick   f

我们想找到演电影的演员,我从键盘上输入演员的名字(input1,input2)。 显然,如果输入是一个参与者,我们会有这样的结果:

sql_query='select Actor1,Actor2 from movies where Actor1= {}'.format(input1)
cursor.execute(sql_query)

但当我有两个输入时,我该怎么办


Tags: sql电影键盘moviesquery名字参与者nick
1条回答
网友
1楼 · 发布于 2024-09-22 16:29:18

在查询中使用两个占位符。您还应该让cursor.execute()执行占位符替换,因为它使用的是一个准备好的语句,而不是字符串格式,这对SQL注入是开放的(您还忘记了{}周围的引号,所以您会得到一个错误)

sql_query = 'select Actor1,Actor2 from movies where (Actor1= %s AND Actor2 = %s) OR (Actor1 = %s AND Actor2 = %s)'
cursor.execute(sql_query, (input1, input2, input2, input1))

相关问题 更多 >