将字符串解析为参数时,sqlite中没有这样的列

2024-09-28 05:17:22 发布

您现在位置:Python中文网/ 问答频道 /正文

为了更好地理解:这是一个管理温室库存的程序,所以它将植物视为产品。 在尝试更新sqlite数据库中的值时,我遇到了一个奇怪的错误。我正在使用一个名为sqUpdateOne的函数,它根据给定的参数更新数据库中的值。这是:

# Sqlite database value updater
def sqUpdateOne(table, column, newValue, refColumn, refValue):
    try:
        with conn:
            c.execute(f'''UPDATE {table} SET "{column}" = {newValue} WHERE {refColumn} = {refValue}''')
    except Exception as e:
        logging.error(f'No se pudo actualizar la tabla {table} - {e}')

在这种情况下,此函数调用“sqUpdateOne”:

def modifValue(column, id, prevValue, modValue):
if modValue != prevValue:
    idCol = 'id'
    invCol = 'inventario'
    sqUpdateOne(invCol, column, modValue, idCol, id)
    return True
else:
    return False

还值得注意的是:当“modValue”(稍后在“sqUpdateOne”中是“newValue”)是整数或浮点值时,一切正常。 例如:当我这样做时:

sqUpdateOne('inventory','product','newPlant",'idColumn',001)

因此,这应该更新表“inventory”中的“product”列,特别是“idColumn”为001的值,并将该值设置为“newPlant”(右??) 好如果我这样做,它会给我一个错误,比如

No such column: "newPlant"

所以。。一般来说:当我在“newValue”参数中给它一个字符串时,我不知道为什么,但它将该值作为“column”值,并给我“no-this column”错误

sqUpdateOne在本程序的许多其他情况下使用,当我给“newValue”参数的值是整数或浮点时,我没有任何问题


Tags: no程序id数据库参数def错误table

热门问题