我试图从SQLite3数据库中获取一个值,并将其放入一个名为FilmLikes的变量中,然后向其中添加一个,并将其存储在变量NewFilmLikes中。然后,我尝试将数据库中此框的值更改为“NewFilmLikes”,但我总是遇到这样的问题:
ValueError:以10为基数的int()的文本无效:“NewFilmLikes”
以下代码显示:
FilmLikes=i[2]
NewFilmLikes=(int(FilmLikes))+1
filmUpdate=("UPDATE HORRORALL SET likes = ? WHERE number = 1"(NewFilmLikes))
c.execute(filmUpdate)
conn.commit()
以下是我的代码:
^{pr2}$
如果不了解更多有关设置的信息,很难正确回答。
请注意,您所指的特定错误(
ValueError: invalid literal for int() with base 10: 'NewFilmLikes'
)通常发生在您获得十进制而不是整数时。在这里有一个大概的答案。在
SELECT *
,因为它隐藏了您要检索的内容。指定,例如SELECT film_id, file_name, no_of_likes FROM horrorall
,这样您就可以看到要检索的内容和位置。在find_film
检索整个电影列表,然后循环查找哪个。SQL有一个find函数,叫做WHERE
,您可以在film_update
部分使用它。如果您有用户输入的ID或名称,那么您可以只调用您需要的记录。E、 g."SELECT film_id, file_name, no_of_likes FROM horrorall WHERE film_id = ?" (filmChoice,)
filmUpdate
您需要(x,)
)filmUpdate
只更新第一部电影。我假设是因为您的if ...
循环继续执行所有可能的选项?您可以通过在那里放置另一个?
来完成这一任务,例如filmUpdate=("UPDATE HORRORALL SET likes = ? WHERE number = ?"(x,i[0]))
把所有这些放在一起,这里有一个例子。注意,这远不是理想的方法,我不想一次就向你抛出太多的想法!在
相关问题 更多 >
编程相关推荐