奇妙なmysqlの挿入エラー

私はデータベースにdict値を挿入しようとしています。しかし、エラーが発生しています。ここに辞書があります。私はこのコードを使用しています。

       `cols = filter_dict.keys()
        vals = filter_dict.values()
        ("INSERT INTO table (%s) VALUES (%s)", [cols, vals])
`

When I only print this query ("INSERT INTO table (%s) VALUES (%s)", [cols, vals]). I'm getting following output. ('INSERT INTO table (%s) VALUES (%s)', [['cinematography', 'name', 'producer', 'caption', 'studio', 'editing'], ['Venkat Prasad', '100% Love', 'Bunny Vasu', '', '100% Love Poster.jpg', 'Chandra Sekhar T Ramesh,Hari Prasad']])

But When I execute this query I"m getting strange output. the manual that corresponds to your MySQL server version for the right syntax to use near \'table (("\'cinematography\'", "\'name\

なぜ各列に `\ 'を追加してクエリを実行するのですか?誰も私を助けることができますか?ありがとう

0

1 答え

バックスラッシュはおそらくデバッガのためです。インタラクティブなプロンプトでコードを実行していますか?

とにかく、実際の問題は次のとおりです。

  • table is a reserved word. You should put table in backticks.
  • If your table contains more than one column, you need to have multiple %s and multiple values.

例えば:

"INSERT INTO `table` (%s, %s, &s) VALUES (%s, %s, %s)"

個々の値を表示するには、(cols、vals)も変更する必要があります。

(cols[0], cols[1], cols[2] , vals[0], vals[1], vals[2])

また、あなたのテーブルの名前を見つけようとしていることを強く示唆しています。

1)は、テーブルに含まれるデータの種類と

2)は予約語ではありません

2
追加された
動いていない。同じエラーが発生しました。
追加された 著者 no_freedom,
何も思いつきません。よくわかりません。
追加された 著者 no_freedom,
辞書のキーと値は動的です。
追加された 著者 no_freedom,
@ user559744:エラーは似ていますが、実際に綿密に見てみると、少し違うことがわかります。
追加された 著者 Mark Byers,
@ user559744:クエリを動的に構築する必要があります。
追加された 著者 Mark Byers,