擅长:python、mysql、java
<p>当有多个要筛选的值时,请使用<strong>IN</strong>关键字。在本例中,您知道整数值,因此SQL注入不是问题。但是您编写的函数可以传递任意值,而SQL注入可能是一个问题,或者可以传递需要转义的字符串文本。因此,通过让数据库驱动程序处理实际参数来解决这些问题是值得的:</p>
<pre><code>party_ids= [4, 3, 1, 2]
def initializegame(party_ids):
#Get selected party members IDS
print(party_ids)
#Obtain Speeds
in_params = ','.join(['%s'] * len(party_ids))
sql = "SELECT startspeed FROM characters WHERE CharID IN (%s)" % in_params
mycursor.execute(sql, party_ids)
myspeeds=mycursor.fetchall()
print(myspeeds)
print("done")
</code></pre>
<p>变量<strong>sql</strong>变为:</p>
<p>从CharID所在的字符中选择startspeed(%s、%s、%s、%s)</p>
<p>然后<strong>execute</strong>语句将4个<strong>IN</strong>值的列表作为第二个参数传递。你知道吗</p>