参数化增删改要点
- INSERT/UPDATE/DELETE 都靠 execute + 参数元组
- 执行后必须 db.commit(),不提交事务不生效
- cursor.rowcount 拿到受影响行数,可校验改了几条
- 批量插用 executemany,一次传多组参数效率高
- 参数用 %s 占位,值里带引号也不会破坏 SQL
- UPDATE/DELETE 忘 WHERE 会动全表,动手前先查
参数化增删改示例
cursor.execute("INSERT INTO product (name, price) VALUES (%s, %s)", ("机械键盘", 299.00))
db.commit()
print(cursor.rowcount, "行插入")
cursor.execute("UPDATE product SET price = %s WHERE id = %s", (259.00, 1))
cursor.execute("DELETE FROM product WHERE id = %s", (99,))
db.commit()
避坑提醒:忘记 commit 是最常见的“为啥库里没数据”原因;PyMySQL 默认不开自动提交,写操作一定要手动 commit。