@StepanKoliada

Как сделать действие с переменной в sql?

Делаю прогу, мне нужно что бы она отнимала cash от нужного мне числа(input). Много всего перепробовал, ничего не помогло. Скажите как это сделать... Вот прога:
import sqlite3

global db
global sql
db = sqlite3.connect('serversi.db')
sql = db.cursor()

sql.execute("""CREATE TABLE IF NOT EXISTS users (
	cash INT,
	ware INT,
	de INT
)""")
db.commit()



def casino():
	number = input("Сколько грамм:")
	if number == '40':
		print('Ваш баланс повышен на 40')
		sql.execute('UPDATE users SET cash = cash + 40')
		db.commit()
	elif number == '100':
		print("Ваш баланс повышен на 100")
		sql.execute('UPDATE users SET cash = cash + 100')
		db.commit()
	elif number == 'del':
		den = input("Сколько снять:")
		de = '1'
		kk = '2'
		sql.execute('INSERT INTO users VALUES (?,?,?)', (den, de, kk))
		sql.execute('UPDATE users SET cash = cash - de')
		print("Баланс снят на " + de)	
		db.commit()

def enter():
	for i in sql.execute('SELECT cash FROM users'):
		print(i)
	for u in sql.execute('SELECT ware FROM users'):
		print(u)

def main():
	casino()
	enter()
main()

Выводит:

d:\python>pdf.py
Сколько грамм:del
Сколько снять:1
Traceback (most recent call last):
File "D:\python\pdf.py", line 45, in
main()
File "D:\python\pdf.py", line 43, in main
casino()
File "D:\python\pdf.py", line 32, in casino
sql.execute('UPDATE users SET cash = cash - de')
sqlite3.OperationalError: no such column: de
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
idShura
@idShura
Почитайте про конкатенацию строк в python
sql.execute('UPDATE users SET cash = cash - ' + de)

У вас ни в одном sql запросе нет условия (Where), вы точно понимаете что пишите?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы