Python mysql字符串替换不起作用

时间:2013-06-13 17:03:29

标签: python mysql string-substitution

我一直在python mysql中使用这种语法非常成功。

search = "O'%"   # find names like O'Brien or O'Connell...

cursor.execute ("""
   select userid
      from usertab
    where name like %s
""" , (search))

但有时我需要在执行之前构建我的sql字符串,如下所示,但替换技术与上述不同,并不适用于所有情况。

search = "O'%"   # find names like O'Brien or O'Connell...

sql = """
   select userid
      from usertab
    where name like '%s'
""" % (search)

cursor.execute(sql)

如何在不执行游标的情况下实现在第一个示例中运行良好的相同类型的字符串替换?

1 个答案:

答案 0 :(得分:2)

MySQLdb uses连接的literal()方法到escape参数,因此您可以使用:

sql = """
   select userid
      from usertab
    where name like %s
""" % cursor.connection.literal(search)