2

我正在使用 pymssql 在 Linux 上使用 Python 进行数据库编程。

我在将参数传递给查询时遇到问题。这个问题似乎只存在于 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
4

2 回答 2

1

原来我试图插入的值之一是 unicode 类型。当我使用 将其转换为字符串时,str(value1)查询有效。

于 2010-11-30T11:00:15.220 回答
-1

这个怎么样:

cur.execute(query % (value1, value2))
于 2010-11-26T11:59:58.210 回答