import MySQLdb# 连接数据库conn = MySQLdb.connect( host='localhost', user='root', passwd='password', db='database_name')# 创建cursor对象cursor = conn.cursor()# 执行SQL语句cursor.execute("SELECT * FROM table_name")# 获取结果result = cursor.fetchall()# 输出结果for row in result: print(row)# 关闭连接conn.close()如果这样做我想让它一直监听怎么偶
时间: 2024-03-14 21:42:41 浏览: 68
如果你想让这段代码一直监听数据库并获取查询结果,可以使用一个循环来实现。以下是示例代码:
```python
import MySQLdb
# 连接数据库
conn = MySQLdb.connect(
host='localhost',
user='root',
passwd='password',
db='database_name'
)
while True:
# 创建cursor对象
cursor = conn.cursor()
# 执行SQL语句
cursor.execute("SELECT * FROM table_name")
# 获取结果
result = cursor.fetchall()
# 输出结果
for row in result:
print(row)
# 关闭cursor对象
cursor.close()
# 等待一段时间后再次执行
time.sleep(1)
# 关闭连接
conn.close()
```
以上代码会不断执行SQL查询,并输出查询结果,直到程序被手动停止。你可以根据需要修改查询的SQL语句,并调整循环中的等待时间。
相关问题
def init_known_face(self): # 数据库连接对象 conn = MySQLdb.connect(host = 'localhost',port=3306 ,user = 'root',passwd = 'root',db = 'attendanceinfo',charset='utf8') # 游标对象 cur = conn.cursor() # 查询的sql语句 sql = "SELECT * FROM userinfo " cur.execute(sql) data = cur.fetchall() row=cur.rowcount vol=6 self.stopvidow = False self.known_face_encodings = [] self.known_face_names = [] for i in range(row): is_exsit = os.path.exists(str(data[i][4])) if (is_exsit): obama_image = face_recognition.load_image_file(str(data[i][4])) obama_face_encoding = self.new_method(obama_image) self.known_face_encodings.append(obama_face_encoding) self.known_face_names.append(str(data[i][1])) cur.close() self.new_method(conn) self.new_method2() def new_method(self, conn): conn.close() def new_method1(self, obama_image): obama_face_encoding = face_recognition.face_encodings(obama_image)[0] return obama_face_encoding找出代码错误并修正
在这段代码中,`self.new_method` 和 `self.new_method2` 方法没有被正确命名,应该修改为正确的方法名。同时,`self.new_method` 方法的作用是关闭数据库连接,但是在初始化已知人脸编码时被错误调用,应该将其修改为一个专门关闭数据库连接的方法。
修改后的代码如下:
```python
import face_recognition
import MySQLdb
import os
class FaceRecognizer:
def __init__(self):
self.stopvidow = False
self.known_face_encodings = []
self.known_face_names = []
self.init_known_face()
def init_known_face(self):
# 数据库连接对象
conn = MySQLdb.connect(host='localhost', port=3306, user='root',
passwd='root', db='attendanceinfo', charset='utf8')
# 游标对象
cur = conn.cursor()
# 查询的sql语句
sql = "SELECT * FROM userinfo "
cur.execute(sql)
data = cur.fetchall()
row = cur.rowcount
vol = 6
self.known_face_encodings = []
self.known_face_names = []
for i in range(row):
is_exsit = os.path.exists(str(data[i][4]))
if (is_exsit):
obama_image = face_recognition.load_image_file(str(data[i][4]))
obama_face_encoding = self.get_face_encoding(obama_image)
self.known_face_encodings.append(obama_face_encoding)
self.known_face_names.append(str(data[i][1]))
cur.close()
conn.close()
def get_face_encoding(self, obama_image):
obama_face_encoding = face_recognition.face_encodings(obama_image)[0]
return obama_face_encoding
def new_method2(self):
pass
```
注意,我将 `new_method` 修改为 `get_face_encoding`,并在 `init_known_face` 方法中调用它来获取人脸编码。此外,我也将 `new_method2` 修改为一个空方法。
请解释一下这段代码: def init_list_data(self): conn = MySQLdb.connect(host = 'localhost',port=3306 ,user = 'root',passwd = 'root',db = 'attendanceinfo',charset='utf8') cur = conn.cursor()
这段代码是Python中连接MySQL数据库的代码。首先,使用MySQLdb模块中的connect()函数创建一个连接,参数包括数据库的地址(host)、端口号(port)、用户名(user)、密码(passwd)、数据库名称(db)和编码方式(charset)。接着,使用该连接创建一个游标对象,可以通过该对象操作数据库。在这个示例中,该游标对象被命名为cur。
阅读全文