Python 和 Mysql 的报价和变量

标签: MySQL Python
发布时间: 2015/6/11 22:20:16
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我已经运行一个问题我不知道如何解决。

我有这行:

parse = cur.execute("SELECT * FROM testdb WHERE Match(name) AGAINST         ('"The.New.York.Times"' IN BOOLEAN MODE);")

如果我运行:

parse = cur.execute("SELECT * FROM testdb WHERE Match(name) AGAINST ('"The.New.York.Times"'     IN BOOLEAN MODE);")

在 mysql 控制台中,它工作。但我想不喜欢 python '"The.New.York.Times"' 报价。我如何解决它呢?

和也,我在 python 中如何会使搜索字符串变量吗? 类似的行

parse = cur.execute("SELECT * FROM testdb WHERE Match(name) AGAINST ('"%s"' IN BOOLEAN MODE);, var1")

?

解决方法 1:

为了避免 sql 注入,并得到适当逃避,你应该查询变量作为参数进行传递第二个到 execute :

param = '"The.New.York.Times"'
cur.execute("SELECT * FROM predb WHERE Match(name) AGAINST (%s IN BOOLEAN MODE)", (param, ))
官方微信
官方QQ群
31647020