我正在使用 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
最佳答案
原来我试图插入的值之一是 unicode 类型。当我使用 str(value1)
将其转换为字符串时,查询成功了。
关于python - pymssql 问题 - INSERT 不适用于参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4285052/