Lorsque nous utilisons python pour effectuer des opérations de base de données, nous rencontrons souvent des erreurs et des problèmes courants. Ces erreurs et problèmes affectent non seulement la qualité et l’efficacité opérationnelle du code, mais rendent également difficile son débogage et sa maintenance. Pour vous aider à éviter ces problèmes, cet article vous fournira quelques conseils et astuces précieux pour vous aider à améliorer vos compétences opérationnelles en base de données, améliorant ainsi l'efficacité du travail et la qualité du projet.
import Mysql.connector # 建立数据库连接 connection = mysql.connector.connect(host="localhost", database="mydb", user="user", passWord="password") # 创建游标 cursor = connection.cursor() # 使用参数化查询来查询数据 sql = "SELECT * FROM users WHERE username=%s" param = ("john",) # 执行查询 cursor.execute(sql, param) # 获取查询结果 result = cursor.fetchall() # 打印查询结果 for row in result: print(row) # 关闭游标和数据库连接 cursor.close() connection.close()
with
pour gérer les transactions. import mysql.connector # 建立数据库连接 connection = mysql.connector.connect(host="localhost", database="mydb", user="user", password="password") # 创建游标 cursor = connection.cursor() # 启动事务 cursor.start_transaction() try: # 执行SQL语句 sql = "UPDATE users SET balance=balance+100 WHERE username=%s" param = ("john",) cursor.execute(sql, param) # 提交事务 connection.commit() except: # 回滚事务 connection.rollback() # 关闭游标和数据库连接 cursor.close() connection.close()
pymysql
库中的ConnectionPool
pour créer un pool de connexions. from pymysql import ConnectionPool # 创建连接池 connection_pool = ConnectionPool(host="localhost", database="mydb", user="user", password="password", max_connections=5) # 获取连接 connection = connection_pool.get_connection() # 创建游标 cursor = connection.cursor() # 执行SQL语句 sql = "SELECT * FROM users WHERE username=%s" param = ("john",) cursor.execute(sql, param) # 获取查询结果 result = cursor.fetchall() # 打印查询结果 for row in result: print(row) # 关闭游标和连接 cursor.close() connection.close()
sqlalchemy
pour utiliser le framework ORM. from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base # 创建引擎 engine = create_engine("mysql+pymysql://user:password@localhost/mydb") # 创建会话 Session = sessionmaker(bind=engine) session = Session() # 定义模型 Base = declarative_base() class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True) username = Column(String(20)) balance = Column(Integer) # 查询数据 user = session.query(User).filter_by(username="john").first() # 更新数据 user.balance += 100 session.commit() # 关闭会话 session.close()
mysqldump
pour sauvegarder la base de données. mysqldump -u user -p password mydb > backup.sql
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!