我发布了这个,并收到此错误:
c.execute("""update resulttest set category=""" + key + ", value=""" + str(value))
OperationalError: (1054, "Unknown column 'composed' in 'field list'")
我正在尝试更新列类别和字段,组合只是类别中的值。
为什么会出现这个错误?
答案 0 :(得分:3)
您可以使用插值和参数化查询,以便于阅读语法,不会转义引号或任何内容。
c.execute("""update resulttest set category=?, value=?""", (key, value))
答案 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'
我认为这不是你正在撰写的查询字符串所能得到的。