python mysql插入数据出错的问题,也是关于处理字符串中特殊字符的问题

放到发 发布于 2015/07/10 01:20
阅读 2K+
收藏 0

python操作mysql时候报错

import MySQLdb

conn=MySQLdb.connect(host='localhost',user='root',passwd='123')
cursor=conn.cursor()
u='3'
bb='<b>3:1</b>'
cursor.execute('insert into bu.test (id,log) values (%s,%s)'% (str(u),bb) )
conn.commit()
cursor.close()
conn.close()
之后会报错

_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<b>3:1</b>)' at line 1")

如果把变量bb的值改为bb='3:1'会报以下错误

_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':1)' at line 1")

所以知道肯定是bb的字符串中的特殊字符在捣蛋,这个怎么处理

bb=r'3:1' 也不行

如何处理,麻烦帮忙,谢谢啊

加载中
0
Kinegratii
Kinegratii

不要用%或者+操作符来拼接SQL语句,应该使用占位符。即execute的第二个参数。

cursor.execute('insert into bu.test (id,log) values (%s,%s)', (str(u),bb) )

参考:http://stackoverflow.com/a/775399

s
sdasfd34
+1
0
orangleliu
orangleliu
最外边用双引号
0
orangleliu
orangleliu
bb外边再加个双引号
返回顶部
顶部