在Python参数化MySQL查询中转义反斜杠

时间:2016-10-11 10:12:37

标签: python mysql sql

我正在研究excel文件和数据库存储,正是我将excel数据存储到MySQL数据库。在某些时候,我正在执行此查询:

query_for_id = ''' SELECT id FROM attivita WHERE attivita = '{0}' '''.format(attivita)

当我打印查询结果时,我得到了这个:

' SELECT id FROM attivita WHERE attivita = \\' Manutenzione \\' '

当它试图匹配' attivita'从excel中获取正确的值,我因为' \\&#39而出错。

我尝试更改"的三重引号" "到' ' ',以及使用connection.escape_string(),但我没有解决问题。任何人都可以帮我解决问题吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我认为在你的情况下更好地使用参数来执行

query_for_id = ''' SELECT id FROM attivita WHERE attivita = %(attivita)s '''
cursor.execute(query_for_id, { 'attivita': attivita })

https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html