我正在尝试从服务器获取数据,所以我尝试了如下
#!/usr/bin/python
import pymssql
conn = pymssql.connect(host='xxxx', user='xxx', password='xxx', database='xxx')
cursor = conn.cursor()
x2 = 'select * from result where url like\'%get content%\''
cursor.execute(x2)
data = cursor.fetchall()
field_names = [i[0] for i in cursor.description]
print field_names
print data
当我运行该程序时,它仅给出列名,
data
变量为空。我不知道是什么原因。我该如何解决?我在Windows中运行相同的脚本没有问题。但是,当我在
Ubuntu 14.04
中执行脚本时,data
变量为空。 最佳答案
这是Ubuntu上PyMSSQL 1.0.x
的已知错误。请参见No data returned from MSSQL server。解决方案是将其升级到版本>= 2.0.1
。
由于PyMSSQL 1.0.x和FreeTDX中的版本存在问题
存储库,PyMSSQL不再从MSSQL返回任何信息
数据库查询。这意味着您不能使用fetchone()或fetchall()
或类似的方法来从数据库查询中取回数据。
Thomas Ward(teward)在2016-06-05中写道:
这是由于freetdx与PyMSSQL 1.0.x之间的不兼容。
解决方法是删除python-pymssql程序包,并运行pip install pymssql
或easy_install --upgrade pymssql
或类似命令,以
获取最新的pymssql版本,大于或等于
2.0.1。
还已在Xenial和Yakkety以及Trusty上确认了此问题。
关于python - pymssql连接不返回数据,仅显示列名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41568984/