私はこれを投稿していますが、このエラーが発生します:
c.execute("""update resulttest set category=""" + key + ", value=""" + str(value))
OperationalError: (1054, "Unknown column 'composed' in 'field list'")
列のカテゴリとフィールドを更新しようとしています。composedは単にカテゴリの値です。
このエラーが発生するのはなぜですか?
補間とパラメーター化されたクエリを使用して、構文を読みやすくし、引用符などをエスケープする必要はありません。
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'
作成しているクエリ文字列に対してそれが得られるとは思いません。