select命令正在运行
engine = create_engine("postgresql://user:password@localhost:5432/table")
db = scoped_session(sessionmaker(bind=engine))
username = db.execute(
"SELECT person.username FROM person join contact0 ON person.id=contact0.id WHERE email =
:address", {"address": address}).fetchall()
password = request.form.get("password")
password = generate_password_hash(password)
这个命令没有更新,我得到一个编程错误,它假设sql命令有语法错误。
什么可能是我的语法错误?
db.execute("UPDATE TABLE person SET password = :password VALUES (:password) WHERE username =
:username", {"password": password, "username": username})
db.commit()
1条答案
按热度按时间ecr0jaav1#
我认为您不需要更新查询中的“表”。您可能复制粘贴了它,并将原来使用的表作为“your\ table”的占位符。
试试这个
另外,因为您使用的是sqlalchemy,所以可以使用
query = person.update(**values)
语句,可以扩展为query.where(getattr(person.c, k) == v)
对任何数量的where语句和值进行动态更新。