打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python MySQLdb中转义字符串的问题

python MySQLdb中转义字符串的问题

(2011-04-22 23:30:33)
标签:

杂谈

分类: python
#-*-coding: utf8 -*-
from connectdb import connectDatabase;#connectDatabase是我自己定义的一个连接数据库的函数
import MySQLdb;
def escape():
   cnn = connectDatabase();
   cursor = cnn.cursor();
   name = "\\"; 
   name2 = "\""
   
   #name = MySQLdb.escape_string(name);
   #name2 =MySQLdb.escape_string(name2);
   print name,name2;
   queryli = [(12,name),(12,name2)]
   print queryli;
   #cursor.executemany("insert intoresource(cid,name) values(%s, %s)",queryli);
   cursor.execute("insert into resource(cid,name)values(%s, %s)" , (12,name) );
   cursor.close();
   
   cnn.commit();
   cnn.close();

if __name__ == "__main__":
   escape();

注意:cursor.execute()可以接受一个参数,也可以接受两个参数:
(1) cursor.execute("insert intoresource(cid,name) values(%s, %s)" , (12,name));
   这种格式是接受两个参数,MySQLdb会自动替你对字符串进行转义和加引号,不必再自己进行转义,执行完    此语句之后,resource表中多了一条记录: 12  \
(2) cursor.execute("insert intoresource(cid,name) values(%s, %s)" % (12,name));
   这种格式是利用python的字符串格式化自己生成一个query,也就是传给execute一个参数,此时必须自己对   字符串转义和增加引号,即上边的语句是错误的,应该修改为:
   name = MySQLdb.escape_string(name);
   cursor.execute("insert into resource(cid,name)values(%s,'%s')" % (12,name));
   这样插入的记录才和(1)一样:12  \

来自:http://blog.sina.com.cn/s/blog_5357c0af0100uxzb.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
python字符串,用json.dumps后,转化为json字符串,里面存在转义字符了,咋整?
Python 中使用 MySQLdb 插入中文数据问题
转义字符--python
PY教程之七字符串篇
Python中字符串前的u、r、b、f分别代表的含义
C#中转义字符
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服