我正在尝试将dict值插入数据库。但是我收到了错误。here is my dictionary。我正在使用此代码。
`cols = filter_dict.keys()
vals = filter_dict.values()
("INSERT INTO table (%s) VALUES (%s)", [cols, vals])
`
当我只打印此查询("INSERT INTO table (%s) VALUES (%s)", [cols, vals])
时。
我得到了以下输出。
('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']])
但是当我执行这个查询时,我得到了奇怪的输出。
the manual that corresponds to your MySQL server version for the right syntax to use near \'table (("\'cinematography\'", "\'name\
为什么执行查询添加'\'到每列?谁能帮我?感谢
答案 0 :(得分:2)
反斜杠很可能是由于你的调试器造成的。您是否在交互式提示中运行代码?
无论如何,实际的问题是:
table
是reserved word。你应该将table
放在反引号中。%s
和多个值。例如:
"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)不是保留字