我试图从 jython 将变量插入到 mysql 中,但遇到了奇怪的错误
var1='abc'
cursor.execute (""" INSERT INTO Master (Name) VALUES (%s) """, (var1))
我收到错误zxJDBC.ProgrammingError:可选的第二个参数必须是列表或元组
我只是想将一个变量添加到名为 Master 的表和名为“Name”的列中,所以我认为我很聪明,我会将 var1 更改为 var1=['abc']
我得到zxJDBC.Error:错误设置索引[1] [SQLCode:0]
参数索引超出范围(1 > 参数数量,即 0)。 [SQL代码:0],[SQL状态:S1009]
我尝试在插入时执行 var1[0] 但仍然没有任何结果。我尝试过其他方法,例如用 ..VALUES (%s) """, % var1) 结束插入语句,但这也不起作用..
很抱歉打扰您,因为我怀疑这会非常简单。我不确定它是否有什么不同,但我正在查看有关 python 的文档,因为我在 jython mysql 上找不到太多内容。
最佳答案
将 (var1) 更改为 (var1,)。括号组,除非添加逗号,然后表示一个元组。
另外,请检查参数样式,因为它可能无法识别 %s 格式。根据 PEP 249:
paramstyle
String constant stating the type of parameter marker
formatting expected by the interface. Possible values are:
'qmark' Question mark style,
e.g. '...WHERE name=?'
'numeric' Numeric, positional style,
e.g. '...WHERE name=:1'
'named' Named style,
e.g. '...WHERE name=:name'
'format' ANSI C printf format codes,
e.g. '...WHERE name=%s'
'pyformat' Python extended format codes,
e.g. '...WHERE name=%(name)s'
关于python - mysql 从 jython 插入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5399316/