##やったこと
python3+SQLITEを使っています。
DBに対してプレースホルダを使って、%記号入りのSQLを発行しようとしています。
まず以下のように書くとエラーが出ました。(connection部分省略)
python
1 SQL="select * from mytable where title like '%?%'" 2 para = ('議事録',) 3 c.execute(SQL,para)
調べて見たのですが情報が見つからず、
自分なりに考えて次のように直してみると、一応期待したように動作しました。
python
1 SQL="select * from mytable where title like ?" 2 inputword='議事録' 3 para=('%' + inputword + '%',) 4 c.execute(SQL,para)
##疑問
以上のように一応動いたのですが、
ただプレースホルダはSQLインジェクションを防ぐ上で非常に重要な処理だと思います。
自己流で間違ったやり方をしていたら大変です。
このやり方は本当に合っているのでしょうか。
また、関連して覚えておくべき情報等ありますでしょうか。
探しても%を使っていない例ばかりで、うまく情報を見つけられませんでした。
教えていただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/02/20 08:29