pymssql问题 - INSERT不支持参数
我在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)
之后,查询就成功了。