我不能得到?代替%s来处理带有python mysqldb的插入

时间:2014-01-22 11:33:05

标签: python mysql mysql-python

我无法得到?而不是%s来处理带有python mysqldb的插入。

我试试

cur.execute("""INSERT INTO project (project) VALUES (?) """, ('ham'))

但我得到

query = query % db.literal(args)
TypeError: not all arguments converted during string formatting
如果我只是替换,

工作正常吗?与%s

我做错了什么?

1 个答案:

答案 0 :(得分:4)

你做不到。 mysqldb适配器仅支持formatpyformat参数样式。

Python DB API 2.0 specification支持5 different paramstyle parameter styles,但它取决于他们支持的确切数据库适配器实现。 mysqldb project documentation告诉您该适配器支持哪些样式,而qmark不是其中之一。

如果您正在尝试编写适用于多个数据库适配器的SQL,那么您很可能不仅仅需要处理更多问题而不仅仅是参数样式。考虑使用SQLAlchemy代替,它可以为您生成更多数据库不可知的SQL(直到某一点)。