Python 向MySQL写入数据

Python向MySQL中写入数据的方法和MySQL非常类似,这里主要想说明一个小点,无论输入的数据类型如何,语句中的占位符均使用%s。这是因为Python写入数据到MySQL的语句为字符串,这样把生成的命令直接传递给MySQL就可以了。(下面代码运行的前提条件是数据库中已经存在对应的数据表!!!)

import pymysql
import logging
import pandas as pd

db_name = 'name'
db_user = 'user'
db_pass = 'psaa'
db_ip = 'ip'
db_port = 3306


#写入数据到数据库中
def writeDb(sql,db_data=()):
    """
    连接mysql数据库(写),并进行写的操作
    """
    try:
        conn = pymysql.connect(db=db_name,user=db_user,passwd=db_pass,host=db_ip,port=int(db_port),charset="utf8")
        cursor = conn.cursor()
    except Exception as e:
        print(e)
        logging.error('数据库连接失败:%s' % e)
        return False

    try:
        cursor.execute(sql, db_data)
        conn.commit()
    except Exception as e:
        conn.rollback()
        logging.error('数据写入失败:%s' % e)
        return False
    finally:
        cursor.close()
        conn.close()
    return True



sql = """ INSERT INTO user(height,weight,sex) VALUES(%s,%s,%s) """
data = (height, weight, sex)
result = writeDb(sql, data)

也就是无论输入的数据是否为字符串,下面都是%s,这里不存在%f这种概念。

sql = """ INSERT INTO user(height,weight,sex) VALUES(%s,%s,%s) """

你可能感兴趣的:(python,MySQL)