pymysql的使用心得(1)------小细节,注意!
2024-09-26 20:11:31
最近一段时间开始使用MySQL,使用的是pymysql库。
其中遇到过一些小问题,值得记录一下,以便今后使用的时候注意到。
- 表格的建立,代码如下:
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类型算了。其他方法感觉还不如留空。
最新文章
- MySQL MMM 双主在Failover时挂起
- spring的beans.xml中classpath
- ASM:《X86汇编语言-从实模式到保护模式》第10章:32位x86处理器的编程架构
- mysql数据库、表、字段、记录:增、删、改、查
- writing concurrent programs
- php json_encode转JSON 编码显示中文
- float:left 与display:inline的具体区别?
- cas的url中去掉jsessionid
- TMethod的学习与使用
- java.lang.NoClassDefFoundError: javax/xml/stream/XMLStreamException
- (step7.2.4)hdu 2674(N!Again——简单数论)
- 使用cacti监控服务器
- 自己动手写Redis客户端(C#实现)4 - 整数回复
- webpack之前端性能优化(史上最全,不断更新中。。。)
- Miller-Rabin,Pollard-Rho(BZOJ3667)
- 变量类型、构造器、封装以及 LeetCode 每日一题
- 在区块链侧链上进行Dapp技术开发
- c语言——鞍点
- zk开机自动启动脚本
- Codeforces Round #425 (Div. 2) Problem D Misha, Grisha and Underground (Codeforces 832D) - 树链剖分 - 树状数组
热门文章
- 计蒜客 38229.Distance on the tree-1.树链剖分(边权)+可持久化线段树(区间小于等于k的数的个数)+离散化+离线处理 or 2.树上第k大(主席树)+二分+离散化+在线查询 (The Preliminary Contest for ICPC China Nanchang National Invitational 南昌邀请赛网络赛)
- PHP接入支付宝支付
- QQ邮件定时发送天气预报
- HDU 5517 【二维树状数组///三维偏序问题】
- android无后缀二进制执行文件替代apk实现程序功能
- android 消息机制,handler机制,messageQueue,looper
- 洛谷 P4884 多少个1?
- 属性通知之ObservableCollection
- Gunicorn配置部分的翻译
- Codeforces Round #298 (Div. 2) A. Exam 构造