我无法找到能够将非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))
答案 0 :(得分:2)
你走在正确的轨道上但看起来应该是这样的。
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))
也应该有用。