MySql,python,Visual Studio代码:没有结果集来取自

时间:2018-05-31 12:23:59

标签: python mysql

我正在尝试从表中获取行但总是接收" none"虽然表中有3行。 我在这个论坛上多次阅读同样的问题,但没有一个解决方案适合我,到目前为止我试图设置autocommit,显式提交,缓冲光标,无缓冲光标,fetchall,fetchone。 Select语句在MySl工作台中正常工作,并在MySql工作台中返回3行,

这是我的设置:

Python 3.6.5(v3.6.5:f59c0932b4,2018年3月28日,17:00:18)[MSC v.1900 64 bit(AMD64)]在win32上

MySql 8.0.11社区服务器 - GPL Win64(x86_64)

MySql Connector for Python 3.6.5

conn = mysql.connector.connect(database='test',
                           user='usr',
                           password='pwd',
                           host='localhost',
                           port=3306)

# autocommit -> advice from web
conn.autocommit = True
print(conn.autocommit)

cursor = conn.cursor()
cursor.execute("SELECT * FROM testtable")
rows = cursor.fetchall()
# .... -> program stops here. please see output below 

res = len(rows)
print(res)
print(rows)

cursor.close()
conn.close()

输出:

True
Traceback (most recent call last):
  File "d:\PyDb\dbtest02_2.py", line 16, in <module>
    rows = cursor.fetchall()
  File "C:\Python\Python365\lib\site-packages\mysql\connector\cursor_cext.py", line 488, in fetchall
    raise errors.InterfaceError("No result set to fetch from.")
mysql.connector.errors.InterfaceError: No result set to fetch from.

非常感谢任何建议。

2 个答案:

答案 0 :(得分:0)

对于这种特定情况,您不需要将连接设置为autocommit,因为您只是从表中读取。

  • 检查用户是否对表格具有SELECT权限

答案 1 :(得分:0)

尝试一下:

cur = conn.cursor()

showdata =“ SELECT * FROM testtable”

尝试:

 cur.execute(showdata)
 rows = cur.fetchall()
 print(rows)

除了:

 print ("Data not found!")