0

我发布这个,并得到这个错误:

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

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

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

为什么会出现这个错误?

4

3 回答 3

3

您可以使用插值和参数化查询来更容易阅读语法,没有转义引号或任何东西。

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

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

于 2012-07-13T23:19:29.860 回答
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);
于 2012-07-13T23:15:59.530 回答
2

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

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

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

我不认为这是您正在编写的查询字符串所得到的。

于 2012-07-13T23:18:22.757 回答