• pymysql的使用心得(1)------小细节,注意!


    最近一段时间开始使用MySQL,使用的是pymysql库。

    其中遇到过一些小问题,值得记录一下,以便今后使用的时候注意到。

    1. 表格的建立,代码如下:
    cursor.execute("create table %s(id char(100))" % tb_name)# 这样写可能报错
    

      其中tb_name就是自己定的表格名称,在使用过程中发现,当表格名称的字符串中带有'-'的时候(如test-abc),会报错,似乎是'-'在MySQL代码中有特殊意义所以让程序误以为这是一个命令。同样的,如果表格的名称与代码语句重复,例如表格名称就叫做'table',也可能使程序报错,因此可以将表格的名称用两个`括起来(注意,这个点不是单引号,而是tab建上面的那个小撇)。

      修改代码如下:

    cursor.execute("create table `%s`(id char(100))" % tb_name)
    

      2.信息的插入,代码如下:

    cursor.execute(”insert into `%s`(id) values('%s')” % (tb_name,data))# 这种可能出错
    

      但是我发现,当需要插入的字符串data中含有'(单引号)的时候,程序就会报错,这比较好理解,大概就是因为信息里面的单引号和代码的单引号形成了交叉,让代码变得混乱了,这种方式就只能尽量让代码中能够区分单引号的,所以我使用了三引号和双引号做区分。修改代码如下:

    cursor.execute('''insert into `%s`(id) values("%s")''' % (tb_name,data))
    

      3.信息的错误

      我设置了一个字段为int,这个字段一般情况下都是整数,但是也可能为空值,所以一当这个值为空的时候就报错。

      目前的解决办法是将这个字段改为char类型算了。其他方法感觉还不如留空。

  • 相关阅读:
    C# @符号的多种使用方法
    C#抽象工厂简单实现类
    项目总结——谈谈封装(抽象工厂+反射+缓存机制)
    C#中String类的几个方法(IndexOf、LastIndexOf、Substring)
    String str 与 String str=new String("") 区别
    sql面试题
    [bzoj2038]莫队算法学习
    分治算法初步
    线段树训练
    [poj2104]可持久化线段树入门题(主席树)
  • 原文地址:https://www.cnblogs.com/gopythoner/p/6498821.html
Copyright © 2020-2023  润新知