2024-10-06 14:29:52 发布
网友
curs.execute ("INSERT INTO temperatur (datum, uhrzeit, ort, messwert) VALUES (CURRENT_DATE(), NOW(), %s, %s);" % ort, messwert)
删除此->
为什么这样不行?在
每个人都认为不应该使用字符串格式,但最简单的答案是需要包含元组的括号,即%(ort, messwert)
%(ort, messwert)
不要使用字符串格式,您将自己暴露在SQL注入中。在
在第二个参数中,将参数作为序列传入:
curs.execute( "INSERT INTO temperatur (datum, uhrzeit, ort, messwert) " "VALUES (CURRENT_DATE(), NOW(), %s, %s)", (ort, messwert))
这里(ord, messwert)是作为curs.execute()的第二个参数传入的元组。SQL语句中不需要;。在
(ord, messwert)
curs.execute()
;
出现错误是因为您只将一个值传递给%字符串格式,您使用的表达式是"string value" % ort,因为messwert是作为curs.execute()的第二个参数传入的。您必须使用"string value" % (ord, messwert)。但是,您应该避免完全使用字符串格式,因为这会使您容易受到SQL注入攻击,攻击者利用对插入到SQL字符串中的值没有正确的转义。在
%
"string value" % ort
messwert
"string value" % (ord, messwert)
每个人都认为不应该使用字符串格式,但最简单的答案是需要包含元组的括号,即
%(ort, messwert)
不要使用字符串格式,您将自己暴露在SQL注入中。在
在第二个参数中,将参数作为序列传入:
这里
(ord, messwert)
是作为curs.execute()
的第二个参数传入的元组。SQL语句中不需要;
。在出现错误是因为您只将一个值传递给
%
字符串格式,您使用的表达式是"string value" % ort
,因为messwert
是作为curs.execute()
的第二个参数传入的。您必须使用"string value" % (ord, messwert)
。但是,您应该避免完全使用字符串格式,因为这会使您容易受到SQL注入攻击,攻击者利用对插入到SQL字符串中的值没有正确的转义。在相关问题 更多 >
编程相关推荐