为什么我的SQL查询一直抛出错误,当我使用正确的列名和正确的语句?



我正在尝试使用MySQL Python和Flask创建一个图书数据库系统。我的Books表中的3列是title, author和publish_year。

我有一个SQL命令写着

"SELECT * FROM Books WHERE title=" + str(title)"

当我试图用

调用端点时
http://127.0.0.1:5000/getbookfromtitle/Twilight

我得到错误

Unknown column 'Twilight' in 'where clause'

有人知道是什么导致这个错误吗?我的完整的Flask函数是

@app.route("/getbookfromtitle/<title>", methods=["GET"])
def getBookFromTitle(title):
if request.method == "GET":
sql = "SELECT * FROM Books WHERE title=" + str(title)
mycursor.execute(sql)
result = mycursor.fetchall()
for x in result:
print(x)
return str(result)

没关系,我想我弄明白了。

I have to do

mycursor.execute("SELECT * FROM Books WHERE title=%s", (title,))

在我这样做之后,不知为什么它工作了。

最新更新