1

我一直在 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)

如何在不执行游标的情况下实现与第一个示例相同的字符串替换?

4

1 回答 1

2

MySQLdb 使用连接的literal()方法来转义参数,因此您可以使用:

sql = """
   select userid
      from usertab
    where name like %s
""" % cursor.connection.literal(search)
于 2013-06-13T17:36:51.880 回答