python - mysql 从 jython 插入变量

标签 python mysql jython

我试图从 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/

相关文章:

python - SciKit-learn--高斯朴素贝叶斯实现

python - IBM WebSphere Application Server wsadmin 在脚本中仅返回 6 个结果中的第一个结果

java - 只需导入一次即可通过 Java 运行 Python 脚本

python - 在 pandas 中读取 csv 文件时出错[CParserError : Error tokenizing data. C 错误 : Buffer overflow caught - possible malformed input file.]

Python:如何允许 ‘inner function’更改多个 ‘outer functions’中的非局部变量

python - 使用可移植的Python连接到Access数据库

mysql - 带有动态字段的 SQL

Joomla—有线 : login does not work after page move

php - Laravel Eloquent 2 个表与 1 个表相关的关系

apache-pig - Pig UDF - 将动态架构作为一组字段(不是元组)返回