【问题标题】:Add SQL variables in through MySQLdb通过 MySQLdb 添加 SQL 变量
【发布时间】:2012-01-13 07:17:32
【问题描述】:

我无法找到能够将非 SQL 变量添加到 SQL 语句的文档。官方文档在 http://dev.mysql.com/doc/refman/5.0/en/user-variables.html 没有涉及。

我将如何在 python 和有效的 SQL 中执行以下操作?

id, provider_id, title = row[0], row[2], row[4]
cursor.execute("INSERT INTO vendor_id VALUES (%s,%s,%s);"%(id, provider_id, title))

【问题讨论】:

    标签: python mysql mysql-python


    【解决方案1】:

    你在正确的轨道上,但它应该看起来像这样。

    id, provider_id, title = row[0], row[2], row[4]
    cursor.execute("INSERT INTO vendor_id VALUES (%s, %s, %s)", id, provider_id, title)
    

    python SQL 数据库 API 会自动禁用并要求重新转义和引用变量。字符串格式化运算符是不必要的,在这种情况下,不对变量引用进行任何格式化。您可以以任何您喜欢的方式格式化最终的变量数组,只是不要像您使用的那样使用 % 运算符。如果我是正确的,这是因为变量是绑定的,并且没有格式化为文本,因此不会发生注入

    cursor.execute("INSERT INTO vendor_id VALUES (%s, %s, %s)", (id, provider_id, title))
    cursor.execute("INSERT INTO vendor_id VALUES (?, ?, ?)", (id, provider_id, title))
    

    应该也可以。

    【讨论】:

      猜你喜欢
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多