使用pymysql
库向数据库表中插入数据,需要在连接数据库之后,构造合适的 SQL 插入语句并执行。以下是一个详细的示例:
首先确保已经安装了pymysql
库,如果没有安装,可以使用pip install pymysql
进行安装。
连接数据库并插入数据的示例代码如下:
import pymysql
# 连接数据库
conn = pymysql.connect(
host='localhost',
user='your_username',
password='your_password',
database='your_database',
charset='utf8mb4'
)
try:
# 创建游标对象
cursor = conn.cursor()
# 假设我们有一个名为product_info的表,包含product_id, product_name, price, stock字段
# 构造插入数据的SQL语句
insert_sql = "INSERT INTO product_info (product_id, product_name, price, stock) VALUES (%s, %s, %s, %s)"
# 要插入的数据
data = (1, '示例商品', 99.99, 100)
# 执行SQL语句
cursor.execute(insert_sql, data)
# 提交事务,使插入操作生效
conn.commit()
print("数据插入成功")
except pymysql.Error as e:
print(f"插入数据时出错: {e}")
# 如果出现错误,回滚事务
conn.rollback()
finally:
# 关闭游标和连接
cursor.close()
conn.close()
在上述代码中:
pymysql.connect
方法连接到指定的数据库。cursor = conn.cursor()
创建游标对象,用于执行 SQL 语句。INSERT INTO
语句,其中%s
是占位符,用于防止 SQL 注入。cursor.execute
方法执行 SQL 语句,并将数据作为参数传入。conn.commit()
提交事务,确保数据被真正插入到数据库中。如果在执行过程中出现错误,通过conn.rollback()
回滚事务,撤销未完成的操作。如果你想要插入多条数据,可以使用executemany
方法,示例如下:
import pymysql
conn = pymysql.connect(
host='localhost',
user='your_username',
password='your_password',
database='your_database',
charset='utf8mb4'
)
try:
cursor = conn.cursor()
insert_sql = "INSERT INTO product_info (product_id, product_name, price, stock) VALUES (%s, %s, %s, %s)"
# 多条数据的列表
multi_data = [
(2, '商品2', 120.5, 80),
(3, '商品3', 59.9, 150)
]
# 执行多条数据插入
cursor.executemany(insert_sql, multi_data)
conn.commit()
print("多条数据插入成功")
except pymysql.Error as e:
print(f"插入数据时出错: {e}")
conn.rollback()
finally:
cursor.close()
conn.close()
这样就可以使用pymysql
库向数据库表中插入单条或多条数据了。如果你对数据插入还有其他疑问,比如如何处理数据冲突等,可以随时告诉我。