如何将变量传递给mysql查询?

时间:2013-05-15 04:23:33

标签: python apache python-2.7 mod-wsgi wsgi

这个没有错误

cursor.execute ("update `1` set `2`='aaa' where `1`='5'")

这个有错误。

cursor.execute ("update `1` set `2`=aaa where `1`='5'")

不同之处在于,我试图将变量'aaa'传递给它。

这是apache的error_log

  

[Tue May 14 21:20:24 2013] [错误] [client 127.0.0.1]   OperationalError:(1054,“字段列表中的未知列'aaa'”)

在PHP中,我只需在mysql查询中键入$aaa,因此假设是在python中我只需键入aaa

2 个答案:

答案 0 :(得分:3)

在php中,您可以执行execute("Update '1' set '2'=$aaa where '1'='5'")但是您应该execute("Update '1' set '2'=? where '1'='5'", $aaa)pdo一起执行。但你至少应该做execute("Update '1' set '2'=".mysql_real_escape_string($aaa)." where '1'='5'")

在Python中,您使用execute("Update '1' set '2'=%s where '1'='5'", [aaa])

答案 1 :(得分:-2)

如果您尝试传递变量的值,则需要在字符串外写入“aaa”。所以,而不是:

cursor.execute ("update `1` set `2`=aaa where `1`='5'")

尝试:

cursor.execute ("update `1` set `2`= '" + aaa + "' where `1`='5'")

请注意,如果您使用的是python,则可能需要将变量转换为字符串(例如,如果它包含数字),使用:

str(aaa)