1 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
fetchone() 函數(shù)以元組形式返回結(jié)果。因此,當(dāng)您使用 fetchone 時(shí),存儲(chǔ)在價(jià)格變量中的值是一個(gè)如下所示的元組:(100,)
。然后,當(dāng)您執(zhí)行更新查詢時(shí),您將傳遞整個(gè)元組,因?yàn)槟诹硪粋€(gè)元組中收到了它。例如,如果價(jià)格值返回為100
,那么下面是您傳遞給執(zhí)行函數(shù)的內(nèi)容。 SQL.execute("UPDATE ..... ", ((100,), USER_ID))
因此,參數(shù)的第一個(gè)元素是元組而不是值,并且您會(huì)收到該錯(cuò)誤,因?yàn)閿?shù)據(jù)庫認(rèn)為那里有一些可以使用的值,但是由于它找到一個(gè)元組作為第一個(gè)元素,因此您會(huì)收到該錯(cuò)誤。您應(yīng)該做的只是傳遞一個(gè)整數(shù)值作為價(jià)格參數(shù),因此它看起來像這樣:SQL.execute("UPDATE ..... ", (100, USER_ID))
為此,您可以通過在元組前面放置 * 來解壓元組,或者從中獲取第一個(gè)值,例如price[0]
。
添加回答
舉報(bào)