使用参数时,无法使用PyMySQL插入数据

gae*_*anm 5 python insert python-3.x pymysql

我目前正在开发一个基本查询,根据输入参数插入数据,我无法执行它.

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

我有这个错误消息:

例外的Tkinter回调回溯(最近通话最后一个):
文件"/usr/lib/python3.2/tkinter/ 初始化的.py",线1426,在调用 返回self.func(*参数)文件"test.py",第9行,在寄存器cur.execute("INSERT INTO foo(bar1,bar2)"值(?,?)",(foo1,foo2))文件"/usr/local/lib/python3.2/dist-packages/pymysql /cursors.py",第108行,执行查询=查询%escaped_args TypeError:%支持的操作数类型:'bytes'和'tuple'

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

Sam*_*Rad 2

看起来像是一个bugin cursors.py. 按照此处此处的建议,您应该替换以下行cursors.py

query = query % conn.escape(args)
Run Code Online (Sandbox Code Playgroud)

有了这个:

query = query.decode(charset) % conn.escape(args)
Run Code Online (Sandbox Code Playgroud)

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

query = query.decode(charset) % escaped_args
Run Code Online (Sandbox Code Playgroud)