【问题标题】:The right syntax to use near '''?在'''附近使用正确的语法?
【发布时间】:2016-09-06 01:45:17
【问题描述】:

我正在运行一个 Python 机器人,它连接到 SQL 数据库并更新表中的值。

我有以下代码:

mycursor.execute("SELECT * FROM reputation WHERE username = '" + str(critiquer) + "'")

我收到错误“...检查与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的 ''' 附近使用的正确语法”

我做了一些调试,字符串“critiquer”没有问题,并且该行存在于表中。

希望能对此问题有所了解。

【问题讨论】:

  • critiquer 可能包含单引号,因此会出现错误。
  • @EduardDaduya critiquer 不包含单引号。我还通过执行不带变量的查询来仔细检查这一点,但我仍然收到错误消息。
  • 您应该使用参数化查询来避免此类问题。
  • 参数化查询既可以解决悬空引号问题,又可以保护您免受 SQL 注入。

标签: python mysql


【解决方案1】:

尝试使用参数化查询:

mycursor.execute("SELECT * FROM reputation WHERE username = '?'", critiquer)

【讨论】:

    猜你喜欢
    • 2014-09-15
    • 2015-12-12
    • 2013-12-16
    • 1970-01-01
    • 2018-08-14
    • 2011-03-11
    • 2014-02-16
    相关资源
    最近更新 更多