繁体   English   中英

如何在Python MySQL查询上插入字符串?

[英]How to insert strings on a Python MySQL Query?

我是Python新手,正在尝试查询MySQL数据库。 MySQL语法已在PHP上进行了测试,并且可以正常工作,但是Python参数对我来说是新的,并且给我一个错误。 你可以帮帮我吗?

pom = "Alcobaça"
data_inicial = "2012-12-01"
data_final = "2012-12-05"

cur.execute("SELECT DATE(DTM), POM, ROUND(MIN(TMP),1)
FROM dados_meteo WHERE POM =%s
AND DATE(DTM) >=%s AND DATE(DTM) <=%s"
%(pom,data_inicial,data_final))

您似乎正在使用MySQLdb模块。 如果是这样,您可以(并且应该)使用execute的内置第二个参数,并将输入作为元组传递,如下所示:

c.execute( \
    "SELECT DATE(DTM), POM, ROUND(MIN(TMP),1) FROM \
        dados_meteo WHERE POM = %s AND DATE(DTM) >= %s AND DATE(DTM) <= %s", \
    (pom, data_inicial, data_final))

这样做而不是使用%来内联格式化字符串。 将数据提供给MySQLdb允许它引用和转义您的字符串。 现在,查询中的字符串都不会被引用或转义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM