Python对mysql的连接、插入、更新

本文介绍了如何使用Python连接到MySQL数据库,并执行数据的插入和更新操作。首先,通过Python的数据库API连接MySQL,然后展示了插入新记录的方法,接着详细解释了如何更新已存在的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

连接并进行查询:

def getEmailAndIdFrom169(sql):
    conn = MySQLdb.connect(host="192.168.6.169", user="resume", passwd="zhimakaimen", db="resumedb", charset='utf8')
    cur = conn.cursor()
    cur.execute('SET NAMES UTF8')
    conn.commit()
    oper = cur.execute(sql)
    
<think>我们参考站内引用的示例,并按照用户需求提供Python连接MySQL并执行插入操作的示例代码。引用[1]和[2]都提供了连接数据库的基本步骤:导入模块、建立连接、获取游标、执行SQL、关闭连接。用户需要的是插入数据的示例,因此我们将展示一个插入单条数据的例子,并注意错误处理和资源释放。步骤:1.导入pymysql模块(如果使用mysql-connector-python,则导入mysql.connector,但引用中使用了pymysql,我们以pymysql为例)2.建立数据库连接3.创建游标对象4.编写插入语句(使用占位符,避免SQL注入)5.执行插入操作(提供要插入的数据)6.提交事务(对于有事务的数据库,如InnoDB,需要提交)7.关闭游标和连接注意:在实际应用中,我们应使用异常处理(try-except)来保证程序的健壮性。下面给出一个示例代码:</think> ### Python连接MySQL并执行插入操作示例 以下是根据您的需求提供的完整Python示例代码,演示如何连接MySQL数据库并执行插入操作: ```python import pymysql # 导入PyMySQL模块 # 1. 建立数据库连接 conn = pymysql.connect( host='localhost', # MySQL服务器地址 port=3306, # MySQL端口(默认3306) user='your_username', # 数据库用户名 password='your_password', # 数据库密码 database='your_database', # 要连接的数据库名称 charset='utf8mb4' # 字符编码 ) # 2. 创建游标对象 cursor = conn.cursor() # 3. 准备插入数据的SQL语句 insert_query = """ INSERT INTO your_table (column1, column2, column3) VALUES (%s, %s, %s) """ # 要插入的数据(可以是单个元组或元组列表) data_to_insert = [ ('value1', 'value2', 'value3'), ('another1', 'another2', 'another3') ] try: # 4. 执行插入操作 # 插入单条数据 cursor.execute(insert_query, ('single1', 'single2', 'single3')) # 批量插入多条数据 cursor.executemany(insert_query, data_to_insert) # 5. 提交事务(确保数据保存) conn.commit() print("成功插入数据,影响行数:", cursor.rowcount) except pymysql.Error as e: # 6. 错误处理 print(f"数据库操作出错: {e}") conn.rollback() # 回滚事务 finally: # 7. 关闭资源 cursor.close() conn.close() print("数据库连接已关闭") ``` ### 关键说明: 1. **占位符机制**:使用`%s`作为SQL参数占位符,而不是字符串拼接,防止SQL注入攻击 2. **批量插入**:`executemany()`支持一次插入多条记录,效率高于多次调用`execute()` 3. **事务管理**: - 执行DML操作(插入/更新/删除)后必须执行`commit()`保存更改 - 异常时使用`rollback()`回滚操作保证数据一致性 4. **连接参数**: - 实际使用时替换`your_username`、`your_password`等占位符 - 建议将敏感信息存储在环境变量中,而非硬编码 ### 最佳实践提示: 1. 使用连接池管理数据库连接(参考引用[2]) 2. 总是通过`try-except`块处理可能的数据库异常 3. 使用`WITH`语句自动管理资源(Python 3.0+): ```python with conn.cursor() as cursor: cursor.execute(sql) conn.commit() ``` 4. 插入数据后可通过`cursor.lastrowid`获取新记录的ID(如果表有自增主键)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值