所以我正在编写一个sql查询来使用python pymysql库从数据库中获取数据。用户将以HTML格式输入一年作为文本字段,并显示与今年相关的数据。我使用此代码并且我不断收到错误。
sql = "SELECT 'Name' From 'winners' WHERE 'Year'=%d"
c.execute(sql, (textfield,))
有人可以告诉我如何解决这个问题吗?谢谢
答案 0 :(得分:1)
有两个问题:
您使用的语法不正确。 '
单引号用于定义字符串值,而不是引用表名和列名。您可能打算使用反引号`
。请参阅When to use single quotes, double quotes, and backticks?
您传入的字符串中查询参数表明您希望接收整数。但是,SQL参数仅支持%s
格式占位符。
更正的代码如下所示:
sql = "SELECT `Name` From `winners` WHERE `Year`=%s"
c.execute(sql, (int(textfield),))
注意int()
电话;如果列类型为NUMBER或类似,则要选择整数而不是字符串。