gpt4 book ai didi

Python Sqlite 转义字符串选择列

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:40 33 4
gpt4 key购买 nike

我正在尝试找到一种方法将值插入到我的 Sqlite 查询中以选择列。

我现在的工作是;

def ChangeItemQuantity(self, item_name, incrament_quantity):
try:
# Change given item quantity in database
self.c.execute('''
SELECT quantity
FROM items
WHERE itemName=?
''',(item_name,))
current_quantity = self.c.fetchone()
new_quantity = current_quantity[0] + incrament_quantity
self.c.execute('''
UPDATE items
SET quantity = ?
WHERE itemName=?
''',(new_quantity, item_name))
self.conn.commit()

这适用于更改 quantity 列中的值,但我想重用此方法来更改另一列 alertLevel 中的值。

所以我想传递列名称,如下所示;

def ChangeItemQuantity(self, column_name, item_name, incrament_quantity):
try:
self.c.execute('''
SELECT ?
FROM items
WHERE itemName=?
''',(column_name, item_name))

我也尝试过;

        self.c.execute('''
SELECT {}
FROM items
WHERE itemName={}
'''.format(column_name, item_name))

感谢您的所有帮助。

最佳答案

无法参数化列或表名称。您必须使用字符串格式:

def ChangeItemQuantity(self, column_name, item_name, incrament_quantity):
try:
self.c.execute('''
SELECT {column_name}
FROM items
WHERE itemName=?
'''.format(column_name=column_name), (item_name,))

请确保您信任您的来源,或者在插入查询之前验证列名称。

关于Python Sqlite 转义字符串选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35524719/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com