在Python中,可以用单引号、双引号、三引号表示字符串,但是这些还不够,例如执行下面的代码:
co = cur.execute("select id from %s where %s = '%s'" % (table, field, value))
假如这个value中,包含单引号,就会出现错误,进一步改为:
co = cur.execute('''select id from %s where %s = "%s"''' % (table, field, value))
但是如果vlaue中含有双引号,照样会出错,因此需要忽略value中这些特殊的符号,
因此只需把上面的语句中vlaue改成re.escape(value)即可,但是别忘了加载import re库。
参考:
【1】Escaping chars in Python and sqlite http://stackoverflow.com/questions/3220005/escaping-chars-in-python-and-sqlite