【发布时间】:2021-05-12 20:04:58
【问题描述】:
我尝试创建一个简短的语句函数,它将返回给我的查询结果。 这适用于 pyodbc 但不适用于 mysql 连接器。
输出是:
文件“/mySQLDB.py”,第 17 行,在 execute_and_fetch 中 结果 = conn.cursor().execute(query, params).fetchall() AttributeError: 'NoneType' 对象没有属性 'fetchall'
import mysql.connector
class MYSQLDB:
def __init__(self):
self.host = 'xx'
self.database = 'xx$xx'
self.user = 'xx'
self.password = 'xx'
def execute(self, query, *params):
mysql.connector.connect(host=self.host, database=self.database,
user=self.user, password=self.password).cursor().execute(query, params).commit()
def execute_and_fetch(self, query, *params):
conn = mysql.connector.connect(host=self.host, database=self.database,
user=self.user, password=self.password)
result = conn.cursor().execute(query, params).fetchall()
conn.commit()
return result
【问题讨论】:
-
这个错误不是意味着“conn.cursor().execute(query, params)”返回了一个None值吗?
-
@BobbyOcean 如果我理解你的话。你想说它不是空的记录集?
-
我所知道的是,您的代码仅在代码“conn.cursor().execute(query, params)”上使用“fetchall()”。因此,运行 .execute() 必须返回 None 值。
标签: python mysql mysql-connector