GOOGLE ADS

вторник, 26 апреля 2022 г.

Как обновить базу данных SQLite3 в Python с помощью пользовательского ввода?

Я пытаюсь создать личную бюджетную программу на Python, и у меня возникают проблемы с обновлением моей базы данных текущих банковских остатков с помощью ввода пользователя. Я храню пользовательские данные (остатки денежных средств) в переменных, но не могу получить данные из переменных в базу данных. Я не получаю никаких сообщений об ошибках, но я могу хранить в базе данных только имена переменных, а не суммы пользовательского ввода, которые представляют переменные.

Вот упрощенная версия моего кода:

# import modules
import sqlite3
# user input
current_acc = float(input("Natwest Current A/C: "))
bills_acc = float(input("Natwest Bills A/C: "))
# update database
conn = sqlite3.connect("databases/bank_accs.db")
c = conn.cursor()
c.execute("""UPDATE bank_accs SET amount = 'current_acc' WHERE rowid = 1"""),
c.execute("""UPDATE bank_accs SET amount = 'bills_acc' WHERE rowid = 2""")
# query database
c.execute("SELECT rowid, * FROM bank_accs")
items = c.fetchall()
for item in items:
print(item)
# commit and close
conn.commit()
conn.close()

Я много гуглил эту проблему, но не могу найти ответ. Единственная реальная подсказка, которую я нашел, была в Stack Overflow, где было предложено заменить имена переменных заполнителями '?', однако было неясно, как вы заменяете заполнители значениями переменных.

Я был бы очень признателен за любую помощь или понимание того, что я делаю неправильно здесь. Я новичок в кодировании, и это мой первый вопрос здесь, надеюсь, мой вопрос имеет смысл.

Спасибо, Пол.


Решение проблемы

как вы упомянули, вы можете использовать "?" знак в качестве заполнителя для переменных, который будет выглядеть так:

sql = "UPDATE bank_accs SET amount =? WHERE rowid = 1" 
c.execute(sql, (current_acc,))
sql = "UPDATE bank_accs SET amount =? WHERE rowid = 2"
c.execute(sql, (bills_acc,))

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...