teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

PEPを見た結果を追記

2017/10/04 03:28

投稿

calkinos
calkinos

スコア452

answer CHANGED
@@ -5,4 +5,19 @@
5
5
  のように%sを''でくるむ
6
6
  のどちらかでかいけつしませんかね?
7
7
 
8
- 後者のような気もしますが
8
+ 後者のような気もしますが
9
+
10
+
11
+ 追記
12
+
13
+ ("...where time < %s",(timestamp,))
14
+ こうするのが正解っぽい。
15
+
16
+ "query include %s" % arg
17
+ みたいなことしてると、 argに不正な文字列が仕込まれたときにSQL Injectionが起きる可能性があるので
18
+ cursor.execute("query include %s", args)
19
+ を利用したほうが安全なことが多いです。
20
+ (cursor.execute内部で argsを安全なものに変換してくれる可能性が高いため)
21
+ [PEP](https://www.python.org/dev/peps/pep-0249/#id15)によると
22
+ argsはシーケンスかマップなので、
23
+ [timestamp]と配列にするか(timestamp,)とtupleにする必要があったっぽいですね。