5

我目前正在研究一个根据输入参数插入数据的基本查询,但我无法执行它。

cur.execute("INSERT INTO foo (bar1, bar2) values (?, ?)", (foo1, foo2))

我有这个错误信息:

Tkinter 回调 Traceback 中的异常(最近一次调用最后一次):
文件“/usr/lib/python3.2/tkinter/init .py”,第 1426 行,调用返回self.func (*args) 文件“test.py”,第 9 行,在寄存器 cur.execute("INSERT INTO foo (bar1, bar2) values (?,?)", (foo1, foo2)) File "/usr/local/lib/python3.2/dist-packages/pymysql /cursors.py",第 108 行,在执行查询 = 查询 % escaped_args 类型错误:不支持的操作数类型为 %:'bytes' 和 'tuple'

foo1 和 foo2 都是字符串类型。我试过了%s,同样的错误。

4

1 回答 1

2

好像是bugcursors.py. 正如这里这里所建议的那样,您应该将这一行替换为cursors.py

query = query % conn.escape(args)

有了这个:

query = query.decode(charset) % conn.escape(args)

如果它不起作用,请尝试这个:

query = query.decode(charset) % escaped_args
于 2013-05-01T20:25:08.447 回答