0

目前我所拥有的是..

cursor.execute ("insert into incoming set  raw='" + f2 + "',  from_em='"+ a2 +"', to2='" + a1 + "'")

我正在努力使自己易于阅读。

所以我试图把它分成多行。

cursor.execute ("insert into incoming set
raw='" + f2 + "',
from_em='"+ a2 +"',
to2='" + a1 + "'
")

这没有用。

4

2 回答 2

3

第一:不要像这样构建 SQL 命令。您将获得SQL 注入。相反,使用准备好的语句。说了这么多,继续回答。

您不能在字符串文字的中间换行(除非您使用反斜杠忽略换行符或者您在三引号字符串中)。相反,像这样打破它:

cursor.execute("insert into incoming set  raw='" + f2 + "',  from_em='"
               + a2 +"', to2='" + a1 + "'")

请注意,如果换行符位于不匹配的括号、方括号或大括号的中间,则 Python 不会将换行符视为语句的结尾。这是PEP 8 首选的在 Python 中执行续行的方法,而不是使用反斜杠。

于 2013-07-26T19:53:43.543 回答
1

尝试这个:

cursor.execute ("insert into incoming set  raw='" 
+ f2 + 
"',  from_em='" 
+ a2 + 
"', to2='" 
+ a1 + "'")

在这种情况下,没有必要使用分隔行,因为整个表达式都在括号内,但请注意,在到达右引号字符之前\不能拆分行。但公平地说,在这里使用字符串格式会更好——它更清楚:

s = "insert into incoming set raw='{0}', from_em='{1}', to2='{2}'"
cursor.execute(s.format(f2, a2, a1))
于 2013-07-26T19:50:53.563 回答