Вставить данные в конкретную строку базы данных Sqlite3? - PullRequest
0 голосов
/ 02 февраля 2019
self.cursor.execute('INSERT INTO User where User_name=(?) (user_name,user_password,user_wins,user_loses) VALUES(?,?,?,?)',(a,a,b,c,d))
self.connect.commit()

Логически я бы подумал, что это будет работать, но я не уверен, почему это не так?Первый '?'в выражении sql совпадает с «a».Я получаю эту ошибку:

sqlite3.OperationalError: near "where": syntax error

Так что мне интересно, возможно ли вообще записать уже написанную строку в базе данных SQL?

1 Ответ

0 голосов
/ 02 февраля 2019

INSERT означает добавить совершенно новую строку.Если вы хотите изменить существующую строку, вам нужно UPDATE.

Например,

UPDATE User
SET user_password=?,
    user_wins=?,
    user_loses=?
WHERE user_name=?

, передавая имя пользователя в качестве последней переменной.

Так что-то вроде:

self.cursor.execute(
    'UPDATE User SET user_password=?, user_wins=?, user_loses=? WHERE user_name=?',
    (b,c,d,a)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...