我发布这个,并得到这个错误:
c.execute("""update resulttest set category=""" + key + ", value=""" + str(value))
OperationalError: (1054, "Unknown column 'composed' in 'field list'")
我正在尝试更新列类别和字段,组成只是类别中的一个值。
为什么会出现这个错误?
您可以使用插值和参数化查询来更容易阅读语法,没有转义引号或任何东西。
c.execute("""update resulttest set category=?, value=?""", (key, value))
// **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);
如果您生成查询字符串,然后在尝试执行之前将其打印出来,您可能会看到一些有趣的东西。你试过吗?
我认为您的引号可能没有正确完成。也就是说,也许您希望查询看起来像这样:
update resulttest set category='somekey', value='composed'
我不认为这是您正在编写的查询字符串所得到的。