gpt4 book ai didi

python Sqlite3 参数 subs

转载 作者:行者123 更新时间:2023-12-02 00:04:22 25 4
gpt4 key购买 nike

我对处理我的数据库的类有一个小问题。它仍然说:

 cursor.execute(sql)
ValueError: operation parameter must be str

我尝试了很多东西,但都没有达到我想要的效果。我看了https://docs.python.org/3.4/library/sqlite3.html我确信我也会做同样的事情。

import sqlite3

class Database():

def __init__(self):
try:
self.db = sqlite3.connect('../database.sqlite')
self.cur = self.db.cursor()
self.cur.execute('pragma foreign_keys="1"')
except sqlite3.Error as e:
raise e

def select(self,sql):

cursor = self.db.cursor()
cursor.execute(sql)
records = cursor.fetchall()
cursor.close()
return records

def insert(self,sql):

cursor = self.db.cursor()
cursor.execute(sql)
newID = cursor.lastrowid
self.db.commit()
cursor.close()
return newID

def execute(self,sql):
""" execute any SQL statement but no return value given """

cursor = self.db.cursor()
cursor.execute(sql)
self.db.commit()
cursor.close()

if __name__ == '__main__':
db = Database()
#sql = "SELECT skuref, titre_prod FROM product"
t = ("888888",)
sql= "UPDATE product SET created = 1 WHERE skuref = ?", t
db.execute(sql)

如果有人可以帮助我,我将不胜感激。后来我想在主程序中的 for 循环中传递类似的东西

lastpost = record[0]
if created = True
sql = "UPDATE product SET created = 1 WHERE skuref = ?",(lastpost,)
db.execute(sql)

最佳答案

sql是一个包含SQL语句和参数的元组。

更改如下,以便sql和参数单独传递,而不是作为元组传递:

def execute(self, sql):
""" execute any SQL statement but no return value given """
cursor = self.db.cursor()
cursor.execute(*sql) # <------
self.db.commit()
cursor.close()

关于python Sqlite3 参数 subs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31216888/

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