我无法得到?而不是%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
我做错了什么?
答案 0 :(得分:4)
你做不到。 mysqldb
适配器仅支持format
和pyformat
参数样式。
Python DB API 2.0 specification支持5 different paramstyle
parameter styles,但它取决于他们支持的确切数据库适配器实现。 mysqldb
project documentation告诉您该适配器支持哪些样式,而qmark
不是其中之一。
如果您正在尝试编写适用于多个数据库适配器的SQL,那么您很可能不仅仅需要处理更多问题而不仅仅是参数样式。考虑使用SQLAlchemy代替,它可以为您生成更多数据库不可知的SQL(直到某一点)。