import pandas as pd import pymysql db_230w= { ‘host‘: ‘192.168.0.222‘, # 服务器地址 ‘port‘: 3306, # 端口号 ‘user‘: ‘root‘, # 用户名 ‘password‘: ‘12345678‘, # 密码 ‘db‘: ‘database‘, # 数据库 ‘charset‘: ‘utf8mb4‘} # 编码 conn = pymysql.connect(**db_230w) # 连接数据库 cursor = conn.cursor() # 生成游标,通过指针操作mysql curs_sql = f‘select * from tb_name where id_name="{id_name}"‘ # sql语句。 try: cursor.execute(curs_sql) # 执行sql语句 except: conn.rollback() # 如果发生异常,就回滚 conn.commit() # 提交事务 cursor.close() # 关闭游标 conn.close() # 关闭数据库连接
注:此方法可能存在转义问题,比如数据种存在单双引号等,可能使得sql语句引号混乱发生冲突,所以如果所筛选的字段数据中带有引号,最好在字符串引号前面加上\\\三个转义符。
此方法不存在转义问题,内部机制会自行处理
import pandas as pd import pymysql db_230w= { ‘host‘: ‘192.168.0.222‘, # 服务器地址 ‘port‘: 3306, # 端口号 ‘user‘: ‘root‘, # 用户名 ‘password‘: ‘12345678‘, # 密码 ‘db‘: ‘database‘, # 数据库 ‘charset‘: ‘utf8mb4‘} # 编码 conn = pymysql.connect(**db_230w) # 连接数据库 cursor = conn.cursor() # 生成游标,通过指针操作mysql sql = "update tb_name set g_rank=%s where name=%s" # sql语句,此处数据用%s代替,与后面列表中数据是一一对应关系 try: cursor.executemany(sql, [(g_rank1, name1),(g_rank2, name2),(g_rank3, name3)......]) # 批量插入数据,与sql中%s是一一对应关系 except: conn.rollback() # 如果发生异常,就回滚 conn.commit() # 提交事务 cursor.close() # 关闭游标 conn.close() # 关闭数据库连接
原文:https://www.cnblogs.com/jaysonteng/p/12533550.html