2017-05-19 12 views
1

私はPythonと一緒にsqlite3を使用しています。私はちょうど起こっているいくつかの本当に基本的な認証を取得しようとしているが、私のSQLクエリが実行されますとき、私は次のエラーを取得しています:OperationalError:いいえそのような列:XX - Sqlite

OperationalError:いいえ、そのようなコラム:管理者

が私のクエリは次のようになります。

cur.execute("SELECT * FROM users WHERE username=%s AND password=%s;" % (username, password)) 

私は検索したが何も見つけることができない

+0

'username'と' password'は文字列です。あなたのクエリに ''%s' 'を使用してください。さもなければ、sqliteはそれらをカラム名と混同します – kuro

答えて

4

データベースクエリで文字列補間を使用しないでください。あなたが抱えている問題と同様に、SQLインジェクション攻撃に晒されています。代わりに、db apiによって提供されるパラメータ置換を使用します。

cur.execute("SELECT * FROM users WHERE username=? AND password=?", (username, password)) 
+0

大変ありがとうございました!私はメモを残すことを確認します! – Jackthomson

関連する問題