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,))
希望对您有所帮助
在这里你可以找到一个很好的例子
我是 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,))
希望对您有所帮助
在这里你可以找到一个很好的例子