zoukankan      html  css  js  c++  java
  • Python MySQLdb 插入数据

    其实python链接MySQL的方法很多,比较常用的是MySQLdb这个模块,由于自己准备往数据库里面插入一条日期数据,在格式化的日期数据的时候一直报错,所以这里简单写了一个往MySQL数据库的插入数据的demo。

    # -*- coding: utf-8 -*-
    # @Time    : 2018/1/22 21:39
    # @Author  : Hunk
    # @Email   : qiang.liu@ikooo.cn
    # @File    : ex125.py
    # @Software: PyCharm
    
    import MySQLdb
    from datetime import datetime
    
    # 打开数据库连接
    db = MySQLdb.connect("127.0.0.1", "root", "root", "cars", charset='utf8')
    
    # 使用cursor()方法获取操作游标
    cursor = db.cursor()
    
    # 使用execute方法执行SQL语句
    date = datetime.now().strftime("%Y-%m-%d")
    sql = """insert into series values(%d,%s,str_to_date(%s,'%%Y-%%m-%%d'))"""
    param = (1, "哈弗H6", date)
    cursor.execute(sql, param)
    # 提交到数据库执行
    db.commit()
    
    # 关闭数据库连接
    cursor.close()
    db.close()
     

    其实最初操作的时候一个简单的数据插入的动作还遇到了几个常见的问题,所以在这里总结下

    问题1:插入数据的时候采用%d 来格式化sql语句;

    报错:TypeError: %d format: a number is required, not str"

    解决方案:

      The format string is not really a normal Python format string. Youmust always use %s for all fields. 也就是MySQLdb的字符串格式化不是标准的python的字符串格式化,

    问题2:链接数据库的时候没有指定数据库的字符集插入中文数据后发现显示乱码;

    解决办法:

      链接的时候直接指定字符集或者链接完成后设置自己的字符集;

      db = MySQLdb.connect("127.0.0.1", "root", "root", "cars", charset='utf8')
  • 相关阅读:
    数据库 | 建表常用语句
    心得 | 撰写项目申报书
    工具 | 时间转化
    SpringBoot | 启动异常 | 显示bulid success 无 error信息
    120. 三角形最小路径和
    63. 不同路径 II
    SpringBoot | Velocity template
    SpringBoot | quartz | @DisallowConcurrentExecution
    SpringBoot | Hibernate @Transient 注解
    Java | 基础归纳 | 静态方法与实例方法的区别
  • 原文地址:https://www.cnblogs.com/mengyu/p/8341813.html
Copyright © 2011-2022 走看看