SQLAlchemy mysql插入特殊字符错误

SQLAlchemy 插入特殊字符操作

引号错误

曾经在使用SQLAlchemy执行sql语句的时候遇到插入字符串时引号的错误
例如下面的代码sql在拼接后就变成了注释中的字符串,这时候插入mysql当然出错。

content = 'test"hhhh",'
sql = 'insert into comment(content) values("%s")'%content
#insert into comment(content) values("test"hhhh",")
execute_sql(sql)

image.png

解决方法:
1.自己转义为引号加上反斜杠

content = content.replace('"','\\"')

2.第三方依赖包

import pymysql
content =pymysql.escape_string(content )  

pymysql.escape_string可转义的字符
image.png

冒号错误

最近遇到个巨坑的问题,以冒号开始的字符串也无法保存,或者以字符串中存在 中文标点符号加冒号的情况也无法保存。(具体原因未找到,似乎是这种操作被当做SQLAlchemy 中的对象处理了)
image.png

content = ":test"
content = ",:test"
sql = 'insert into comment(content) values("%s")'%content
execute_sql(sql)
posted @ 2019-09-26 18:06  古月月月胡  阅读(1894)  评论(0编辑  收藏  举报