查询与遍历要点
- db.cursor() 拿到游标,所有 SQL 都经它执行
- execute 发 SELECT,fetchall 取全部行,fetchone 取一行
- 返回的是元组,按列顺序取值,dict 游标才能按名取
- 遍历 rows 逐行打印或处理,空结果循环不执行
- 查询也用 %s 占位传参,别把变量拼进字符串
- 游标用完 cursor.close(),再 db.close() 收尾
查询与遍历示例
import pymysql
db = pymysql.connect(host="127.0.0.1", user="app_user", password="app_pass", database="shop_db")
cursor = db.cursor()
cursor.execute("SELECT order_id, amount, status FROM orders WHERE user_id = %s", (1,))
rows = cursor.fetchall()
for r in rows:
print(r)
cursor.close()
db.close()
避坑提醒:默认游标返回元组,列多时容易取错下标;想要按字段名取值,建游标时传 cursor=pymysql.cursors.DictCursor。