#python #mysql #pymysql
#python #mysql #pymysql
Вопрос:
всякий раз, когда выполняется приведенный ниже код, переменной dictionary и, следовательно, dictionary2 присваиваются старые данные.
import pymysql
dictionary2 = []
charSet = "utf8mb4"
cusrorType = pymysql.cursors.DictCursor
connection = pymysql.connect("localhost", "username", "password", "db", charset=charSet, cursorclass=cusrorType, autocommit=True)
c = connection.cursor()
query =("SELECT item FROM inventory WHERE user = %s AND itemVal=1 AND itemDescription = %s")
args = (str(user), str(itemDescription)
c.execute(query, args)
dictionary = c.fetchall()
for a in dictionary:
if not a["item"] in dictionary2:
dictionary2.append(a["item"])
Я усек таблицу, и переменным по-прежнему присваиваются старые данные. я попытался закрыть все задачи python. Я также попытался запустить его в оболочке python. при запуске в оболочке python из базы данных выбираются правильные данные.
Комментарии:
1. Вы постоянно поддерживаете это соединение открытым? Без коммитов после запросов соединение будет извлекать устаревшие данные.
2. да, я, однако, установил значение autocommit равным True, которое фиксируется после каждого выполнения. также не приведет ли закрытие всех задач python к остановке соединения?