python pymysql - mysql 带参数的命令

python pymysql - mysql commands with parameters

我是 python 的新手,我正在努力使用 mysql 命令和参数。具体来说,我发现我必须使用“%”来分隔命令和参数:

该连接作为注释包含在内,仅供参考。

@app.route("/test")
def test():
    # db = pymysql.connect(
      # host="localhost",
      # user="root",
      # password="---------",
      # database="golf",
      # charset="utf8mb4",
      # cursorclass=pymysql.cursors.DictCursor,
    # )
    cur = db.cursor()
    cur.execute("USE golf")

    mySQLQuery = "SELECT * FROM users WHERE email='%s'"
    email = "test@test.com"

    cur.execute(mySQLQuery % (email,))
    return render_template("index.html")

我找到的示例似乎使用了“,”而不是“%”,如果我没记错的话,可能会推荐使用“,”。但是,当我将“%”替换为“,”时收到错误消息:

pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'test@test.com''' at line 1")

我所做的唯一更改是 cur.execute 命令:

 cur.execute(mySQLQuery, (email,))

我知道我的理解可能不正确,'%' 是可以接受的。

如有任何指导或建议,我们将不胜感激。

尝试从 " ... email='%s' " 中删除 '

只使用 email = %s 并使用 cur.execute(mySQLQuery, (email,))

希望对您有所帮助

在这里你可以找到一个很好的例子