«Нет такой ошибки столбца» в sqlite3 в Python - PullRequest
0 голосов
/ 03 ноября 2019

Я получаю сообщение об ошибке при попытке вставить значения.

Это для хранения идентификатора пользователя и пароля пользователя в базе данных sqlite3.

import sqlite3, hashlib

conn = sqlite3.connect('user.db')

a = input("Enter id:")
b = input("Enter password:")
b = str.encode(b)
b = hashlib.sha224(b).hexdigest()

conn.execute("insert into user(id,pass) values(%s, %s);"%(a,b))
print("Done")

Оператор создания был:

CREATE TABLE user(id varchar[50], pass varchar[50])

Когда я пытаюсь ввести значения A (id) и a (пароль), я получаю следующую ошибку:

conn.execute("insert into user(id,pass) values(%s, %s);"%(a,b))
sqlite3.OperationalError: no such column: A

1 Ответ

1 голос
/ 04 ноября 2019

Вы должны использовать заполнители для параметров.

Таким образом, ваш код станет:

 conn.execute("insert into user(id,pass) values(? , ?);" , (a,b))

Другое решение, которое плохо практика Из-за высокого риска внедрения SQL:

 conn.execute("insert into user(id,pass) values('%s', '%s');"%(a,b))

Документация модуля SQLite3 Python:

https://docs.python.org/3/library/sqlite3.html#sqlite3.Cursor.execute

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...