我正在尝试从表中获取行但总是接收" 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.
非常感谢任何建议。
答案 0 :(得分:0)
对于这种特定情况,您不需要将连接设置为autocommit,因为您只是从表中读取。
答案 1 :(得分:0)
尝试一下:
cur = conn.cursor()
showdata =“ SELECT * FROM testtable”
尝试:
cur.execute(showdata)
rows = cur.fetchall()
print(rows)
除了:
print ("Data not found!")