除非你知道自己在做什么,否则不要将SQL字符串与数据结合起来。这样做肯定会给自己带来麻烦。SQL注入漏洞.
你的原始代码几乎是正确的。首先,正如评论所指出的,你不需要在%s
周围加上引号。
sql = "SELECT * FROM attendance WHERE name=%s"
然后,你的cursor.execute()
的第二个参数是一个元组,但是在Python中,要做一个单元素的元组,用括号包住它是不够的。
my_element = 12345
not_a_tuple = (my_element)
type(not_a_tuple) == int
real_tuple = (my_element,) # note the comma at the end
type(real_tuple) == tuple
将这些应用于你的代码,你会得到。
nameEnt = nameEntered.get()
print(nameEnt)
sql = "SELECT * FROM attendance WHERE name=%s"
val = (nameEnt,)
print(mycursor.execute(sql, val))
myresult = mycursor.fetchall()
for x in myresult:
print(x)