python往mysql存入数据_python往mysql数据库中动态写入数据和更新插入数据

1. 连接mysql

import pymysql

db = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='spiders')

cursor = db.cursor()

sql = 'select * from students;'

cursor.execute(sql)

cursor.close()

db.close()

2. 多字段动态插入mysql数据库中

import pymysql

db = pymysql.connect(host='localhost',user='root', password='123456', port=3306, db='spiders')

data = {

'id': '20180606',

'name': 'Lily',

'age': 20

}

table = 'students'

keys = ', '.join(data.keys())

values = ', '.join(['%s'] * len(data))

sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)

try:

cursor.execute(sql, tuple(data.values()))

print('Successful')

db.commit()

except:

print('Failed')

db.rollback()

cursor.close()

db.close()

3. 数据更新插入mysql数据库中

import pymysql

db = pymysql.connect(host='localhost',user='root', password='123456', port=3306, db='spiders')

data = {

'id': '20180606',

'name': 'Lily',

'age': 25

}

table = 'students'

keys = ', '.join(data.keys())

values = ', '.join(['%s'] * len(data))

sql = 'INSERT INTO {table}({keys}) VALUES ({values}) ON DUPLICATE KEY UPDATE'.format(table=table, keys=keys, values=values)

update = ','.join([" {key} = (%s)".format(key=key) for key in data])

sql += update

try:

cursor.execute(sql, tuple(data.values()))

print('Successful')

db.commit()

except:

print('Failed')

db.rollback()

cursor.close()

db.close()

execute(sql,args)方法注意事项:

1、execute方法中sql语句占位符是%s,与mysql中的?不同。

2、%s必须用括号包裹,如:

insert into teacher(name) values (%s) 正确

insert into teacher(name) values %s 报错

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值