我试图仅使用一个连接从表中检索所有数据。这是一个伪代码:
import MySQLdb
db = MySQLdb.connect(host,user,pass,db)
def some_fun():
global db
cur=db.cursor()
cur.execute("SELECT * FROM TableName")
result = cur.fetchall()
for i in result:
print i
cur.close()
while True:
some_fun()
此代码不起作用,即使表格内容发生变化,每次都会提供相同的记录。
如何只使用一个连接就可以实现多个查询,而且每次必须获取表内容时都不会打开连接。
由于
答案 0 :(得分:0)
如果您主要关心的是重复使用连接而不关闭并重复打开它,您可以执行以下操作。
光标不会关闭,每个新查询都会获取表格中的更新数据。
import MySQLdb
class Dbconnect(object):
def __init__(self):
self.dbconection = MySQLdb.connect(host='host', port=int('port'), user='user', passwd'passwd', db='schema_db')
self.dbcursor = self.dbconection.cursor()
db = Dbconnect()
# conection made before the infinite loop
while True:
db.dbcursor.execute()
# use an iterator to view results. This consumes the cursor
for row in db.dbcursor:
print row