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)
解决方法:
1.自己转义为引号加上反斜杠
content = content.replace('"','\\"')
2.第三方依赖包
import pymysql
content =pymysql.escape_string(content )
pymysql.escape_string可转义的字符
冒号错误
最近遇到个巨坑的问题,以冒号开始的字符串也无法保存,或者以字符串中存在 中文标点符号加冒号的情况也无法保存。(具体原因未找到,似乎是这种操作被当做SQLAlchemy 中的对象处理了)
content = ":test"
content = ",:test"
sql = 'insert into comment(content) values("%s")'%content
execute_sql(sql)