奇怪的mysql插入错误

时间:2011-10-27 19:17:27

标签: python mysql dictionary

我正在尝试将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\

为什么执行查询添加'\'到每列?谁能帮我?感谢

1 个答案:

答案 0 :(得分:2)

反斜杠很可能是由于你的调试器造成的。您是否在交互式提示中运行代码?

无论如何,实际的问题是:

  • tablereserved 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)不是保留字