Python中使用MySQLdb插入数据中文及变量问题

1.在建表的时候需注意

CREATE TABLE `15_04_14_node_rtt` (
  `node` varchar(20) DEFAULT NULL,
  `rtt` varchar(20) DEFAULT NULL,
  `rtt_avg` varchar(20) DEFAULT NULL,
  `vist` varchar(30) DEFAULT NULL,
  `user` varchar(50) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8

如果你已经建表可通过如下命令进行查询

mysql> show create table 15_04_14_node_rtt;
+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table             | Create Table                                                                                                                                                                                                                                              |
+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 15_04_14_node_rtt | CREATE TABLE `15_04_14_node_rtt` (
  `node` varchar(20) DEFAULT NULL,
  `rtt` varchar(20) DEFAULT NULL,
  `rtt_avg` varchar(20) DEFAULT NULL,
  `vist` varchar(30) DEFAULT NULL,
  `user` varchar(50) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |

2.connect sql 时需注意

CREATE TABLE `15_04_14_node_rtt` (
  `node` varchar(20) DEFAULT NULL,
  `rtt` varchar(20) DEFAULT NULL,
  `rtt_avg` varchar(20) DEFAULT NULL,
  `vist` varchar(30) DEFAULT NULL,
  `user` varchar(50) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8

3.insert 注意

a = "你好大大啊啊"
b = "你"
c = "你好大"
d = "你好大大"
e = "你好大大啊啊"
cur.execute("insert into 15_04_14_node_rtt(node,rtt,rtt_avg,vist,user) values (\
        '%s','%s','%s','%s','%s')" % (a,b,c,d,e))

4.sql 查询时候需注意

mysql> select * from 15_04_14_node_rtt;
+--------+------+---------+------+--------+
| node   | rtt  | rtt_avg | vist | user   |
+--------+------+---------+------+--------+
| ?????? | ?    | ???     | ???? | ?????? |
+--------+------+---------+------+--------+
1 row in set (0.00 sec)

mysql> set names utf8;     #原因由于终端和客户端所用绘画不一样
Query OK, 0 rows affected (0.00 sec)

mysql> select * from 15_04_14_node_rtt;
+--------------------+------+-----------+--------------+--------------------+
| node               | rtt  | rtt_avg   | vist         | user               |
+--------------------+------+-----------+--------------+--------------------+
| 你好大大啊啊 | 你  | 你好大 | 你好大大 | 你好大大啊啊 |
+--------------------+------+-----------+--------------+--------------------+
1 row in set (0.00 sec)

mysql>

注:

汉字编码 在脚本顶端添加 

# -*- coding: utf-8 -*-
import sys

reload(sys)  
sys.setdefaultencoding('utf-8')

转载于:https://my.oschina.net/zhangxc73912/blog/401748

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值