Bonjour à tous,
J'ai un problème très étrange. Je repete toutes les X secondes la même requete SQL et celle ci me retourne toujours le même résultat. Hors la base de données est modifié entre temps.
Par contre si je réouvre la connexion mysql à chaque fois, cela marche...
Quelqu'un aurait une idée?
Ma classe DB:
Je l'utilise ici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 class IMDb: def __init__(self, logger): self.isDbOk = True; ... def openDb(self): try: self.db = MySQLdb.connect(host=self.db_host,user=self.db_user,passwd=self.db_password,db=self.db_database); self.isDbOk = True; except Exception: self.logger.error("Connection to db fail. Check your configuration file."); self.isDbOk = False; def query(self, sql): if self.isDbOk: cursor = self.db.cursor(); cursor.execute(sql); else: self.openDb(); cursor = self.db.cursor(); cursor.execute(sql) return cursor;
Avec ce code ca ne marche pas. Le résultat retourné est tout le temps le même alors que les données de la table ont été modifiées entre temps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 sQuery = "SELECT toto FROM toto"; cu = self.db.query(sQuery); #self.db est une instance de IMDb for item in cu.fetchall(): ... # close cursor cu.close();
Par contre si je fait un self.openDb(); à chaque appel de query(), la ça marche, la requête ne me retourne des données différentes.
edit: j'utilise de l'innodb.
Partager