1
我試圖找到一種方法來插入一個值到我的Sqlite查詢選擇一列。Python的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))
謝謝你的一切幫助。
不好意思,但這與我試過的'.format'有什麼不同呢? – JohnBoy
@JohnBoy它不同。您必須使用列或表格名稱的格式,但查詢的其餘部分仍應參數化。 – alecxe
好的,謝謝!這裏使用的'.format()'是否容易受到SQL注入? – JohnBoy