python中的sqlite sql误差



我希望有一个简单的问题sql-command

代码:

c.execute("SELECT MAX(pic_num) FROM Pictures WHERE id = "+str(user_id))   

pic_num是数据库中的一列,user_id是数据库中的整数

我以为一切都是正确的,但我明白了错误:

sqlite3.erationalerror:近"(":语法错误

此信息根本没有帮助我

使用Python的DB-API的正确方法是在您的SQL查询中使用占位符并沿着查询值传递,即:

c.execute("SELECT MAX(pic_num) FROM Pictures WHERE id=?", [user_id,])   

请注意,这可能不一定能解决您的问题,但是由于您没有发布架构或user_id值,我们无法尝试&复制问题。

您应该像这样python sqlite模块的替换:

c.execute("SELECT MAX(pic_num) FROM Pictures WHERE id = ?", (user_id, ))

谢谢大家的快速答案!

c.execute("SELECT MAX(pic_num) FROM Pictures WHERE id = ?", (str(user_id), ))

这终于有效:(

我已经写了一些应该处理SQL注入的LIB(他们测试了引号的输入,但是您对SQL:D(非常新鲜:D(

最新更新