下面是一个使用Python连接MySQL数据库并进行增删改操作的示例。在这个示例中,我们将使用`mysql-connector-python`库,这是MySQL官方提供的Python数据库连接器。如果你还没有安装这个库,可以通过pip安装:
pip install mysql-connector-python
接下来是Python代码示例:
import mysql.connector
from mysql.connector import Error
def create_connection(host_name, user_name, user_password, db_name):
""" 创建数据库连接 """
connection = None
try:
connection = mysql.connector.connect(
host=host_name,
user=user_name,
passwd=user_password,
database=db_name
)
print("连接数据库成功")
except Error as e:
print(f"连接数据库失败:{e}")
return connection
def execute_query(connection, query):
""" 执行查询 """
cursor = None
try:
cursor = connection.cursor()
cursor.execute(query)
connection.commit()
print("查询成功")
except Error as e:
print(f"查询失败:{e}")
finally:
if (connection.is_connected()):
cursor.close()
def main():
host_name = "localhost"
user_name = "your_username" # 请替换为你的MySQL用户名
user_password = "your_password" # 请替换为你的MySQL密码
db_name = "your_database" # 请替换为你的数据库名
# 创建数据库连接
connection = create_connection(host_name, user_name, user_password, db_name)
# 插入数据
insert_query = """
INSERT INTO your_table_name (column1, column2, column3)
VALUES (%s, %s, %s)
"""
values = ("value1", "value2", "value3") # 请根据你的表结构替换值
execute_query(connection, insert_query, values)
# 更新数据
update_query = """
UPDATE your_table_name
SET column1 = %s
WHERE condition = %s
"""
update_values = ("new_value1", "condition_value") # 请根据你的表结构替换值
execute_query(connection, update_query, update_values)
# 删除数据
delete_query = """
DELETE FROM your_table_name
WHERE condition = %s
"""
delete_values = ("condition_value",) # 请根据你的表结构替换条件值
execute_query(connection, delete_query, delete_values)
# 关闭连接
if (connection.is_connected()):
connection.close()
print("数据库连接已关闭")
if __name__ == '__main__':
main()
**注意**:
1. 替换`your_username`、`your_password`、`your_database`、`your_table_name`、`column1`、`column2`、`column3`、`value1`、`value2`、`value3`、`new_value1`、`condition_value`等占位符为你自己的数据库信息、表名、列名和值。
2. 确保你的MySQL服务正在运行,并且你有足够的权限来执行这些操作。
3. 示例中的`execute_query`函数需要修改以支持带参数的查询,因为原始版本没有处理查询参数。但由于篇幅和清晰度的考虑,这里直接传递了完整的查询字符串(包括参数占位符),并在调用时传递了参数值。在实际应用中,你应该使用参数化查询来防止SQL注入攻击。但在这个简单的示例中,为了保持简洁性,我省略了这部分细节。