为什么我的SQL查询不起作用?

时间:2012-07-13 23:12:31

标签: python sql

我发布了这个,并收到此错误:

c.execute("""update resulttest set category=""" + key + ", value=""" + str(value))

OperationalError: (1054, "Unknown column 'composed' in 'field list'")

我正在尝试更新列类别和字段,组合只是类别中的值。

为什么会出现这个错误?

3 个答案:

答案 0 :(得分:3)

您可以使用插值和参数化查询,以便于阅读语法,不会转义引号或任何内容。

c.execute("""update resulttest set category=?, value=?""", (key, value))

https://stackoverflow.com/a/775399/594589

答案 1 :(得分:2)

// **mysql based**
string cmd = "UPDATE resulttest SET category=\"" + key + "\", value=\"" + str(value) + "\"";

// **sql based**
string cmd = "UPDATE resulttest SET category='" + key + "', value='" + str(value) + "'";

// make sure you command output a escaped format
// UPDATE resulttest SET category='test', value='test'
// UPDATE resulttest SET category="test", value="test"

c.execute(cmd);

答案 2 :(得分:2)

如果生成查询字符串然后在尝试执行之前将其打印出来,您可能会看到一些有趣的内容。你试过了吗?

我认为你的引号可能没有正确完成。也就是说,也许您希望查询看起来像这样:

update resulttest set category='somekey', value='composed'

我认为这不是你正在撰写的查询字符串所能得到的。