pymssql问题 - INSERT不支持参数

2 投票
2 回答
4846 浏览
提问于 2025-04-16 07:38

我在Linux上用Python和pymssql做数据库编程。

我在给查询传递参数时遇到了问题。这个问题似乎只出现在INSERT查询上。

这个是可以正常工作的:

query = "SELECT col1, col2 FROM table WHERE col3=%s"
cur.execute(query, (value,))

但是这个就不行:

query = "INSERT INTO table (col1, col2) VALUES (%s, %s)"
cur.execute(query, (value1, value2,))

有人知道为什么INSERT查询不工作吗?

这里是错误信息:

Traceback (most recent call last):
  File "test.py", line 46, in ?
    cur.execute(query, (value1, value2,))
  File "/usr/lib/python2.4/site-packages/pymssql.py", line 126, in execute
    self.executemany(operation, (params,))
  File "/usr/lib/python2.4/site-packages/pymssql.py", line 152, in executemany
    raise DatabaseError, "internal error: %s" % self.__source.errmsg()
pymssql.DatabaseError: internal error: None

2 个回答

-1

这样怎么样:

cur.execute(query % (value1, value2))
1

原来我想插入的一个值是unicode类型的。当我把它转换成字符串,使用 str(value1) 之后,查询就成功了。

撰写回答