我几乎尝试了所有方法,但没有任何效果,而且我在 stackoverflow 上找不到任何与此相关的内容。我的任务很简单。我正在尝试将数据插入表中并使用 python 回读,但我没有得到问题所在。这是我的代码。我在第一类中有两个函数是插入数据。
async def insertDataIntoTable(self, username, email, password):
tableName = f'{self.config.get("TABLE_NAME")}'
query = f"INSERT INTO {tableName}(username, email, user_pass) VALUES (?, ?, ?)"
self.cursor.execute(query, (username, email, password))
results = self.cursor.fetchone()
self.database.commit()
print(results)
当我运行上述函数时,我得到以下输出。
Traceback (most recent call last):
File "/home/virchual/python/discordBots/registerBot/extensions/maria.py", line 65, in <module>
ruc(maria.insertDataIntoTable('vir', 'em@gm', 'passy'))
File "/home/virchual/anaconda3/envs/discord/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/home/virchual/python/discordBots/registerBot/extensions/maria.py", line 35, in insertDataIntoTable
results = self.cursor.fetchone()
mariadb.ProgrammingError: Cursor doesn't have a result set
它没有将它插入到我通过终端检查过的表中,我可以使用终端插入数据。
另一个功能是检查表中是否存在具有该用户名的用户。代码如下。
async def userExistsWithUsername(self, username):
self.cursor.execute(
f"SELECT * FROM {self.config.get('TABLE_NAME')} WHERE username=?", (username,))
res = self.cursor.fetchone()
if res == None:
return False
return True
即使我使用终端将数据插入表中,这里 res 始终为 None 。它永远不会在表中找到该数据。有人可以帮忙吗?