我正在尝试从服务器获取数据,所以我尝试了如下

#!/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 pymssqleasy_install --upgrade pymssql或类似命令,以
  获取最新的pymssql版本,大于或等于
  2.0.1。
  
  还已在Xenial和Yakkety以及Trusty上确认了此问题。

关于python - pymssql连接不返回数据,仅显示列名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41568984/

10-10 21:15