基础连接示例
使用`pymysql`库建立连接并执行查询:
import pymysql
建立连接
connection = pymysql.connect(
host='localhost',
user='root',
password='your_password',
database='test_db',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
try:
with connection.cursor() as cursor:
# 执行查询
sql = "SELECT FROM users WHERE age > %s"
cursor.execute(sql, (18,))
results = cursor.fetchall()
for row in results:
print(row)
finally:
connection.close()
注意:这里使用了参数化查询`%s`,这是防止SQL注入的关键。
事务处理示例
在执行多条插入或更新语句时,事务至关重要:
import pymysql
connection = pymysql.connect(
host='localhost',
user='root',
password='your_password',
database='test_db'
)
try:
with connection.cursor() as cursor:
sql1 = "INSERT INTO orders (user_id, amount) VALUES (%s, %s)"
sql2 = "UPDATE users SET balance = balance - %s WHERE id = %s"
# 开始事务
cursor.execute("START TRANSACTION")
try:
cursor.execute(sql1, (1001, 50.00))
cursor.execute(sql2, (50.00, 1001))
# 提交事务
connection.commit()
print("交易成功")
except Exception as e:
# 发生错误,回滚事务
connection.rollback()
print(f"交易失败: {e}")
finally:
connection.close()